Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485

Чем отличаются комбинации if / elseif / else ?

27.10.2014, 15:14. Показов 4888. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просто в курсе PHP 4 на Интуите встретил интересные примеры, что и послужило поводом для вопроса.
Вариант 1
PHP
1
2
3
4
5
6
if($a<100){}
else{}
if(){}
else{}
if(){}
else{}
Вариант 2
PHP
1
2
3
4
if($a<100){}
if(){}
if(){}
else{}
Вариант 3
PHP
1
2
3
4
if($a<100){}
elseif(){}
elseif(){}
else{}
На мой взгляд варианты 2 и 3 тождественны. Вариант 1 имеет расплывчатую логику. elseif() можно вообще выкинуть без какого-либо ущерба. Словом, вариант 2 вполне универсален и достаточен - остальное лишь приблуды "литературного" наследия Perlа. Или я не прав?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2014, 15:14
Ответы с готовыми решениями:

Разный вывод (printf) табуляции (\t) ветвлений (if-if-if-else) и (if-elseif-elseif-else)
Почему результатом выполнения нижеследующего кода при вводе, например: &quot;qweqwe&quot; консоль (linux) отображает слитно: &quot;qwe\tqwe&quot;? ...

В чём причина ошибки, проблема с elseif
Помогите разобраться, ругается на elif Код ниже: #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as nu,...

Чем отличаются и в чем схожи типизированные и текстовые файлы
Подскажите, пожалуйста, чем отличаются и в чем схожи типизированные и текстовые файлы в Паскале?

17
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
27.10.2014, 15:19
Цитата Сообщение от Albaz Посмотреть сообщение
Или я не прав?
Совершенно. Во-первых, что это вообще такое, все условия пустые. Я могу легко сказать, что тождественны все 3 условия и они ничего не дают))

Во-вторых,

-в первом варианте условия 1,2 и 3 будут всегда проверяться. И если какое-либо из них выполняется, выполняются соответствующие им инструкции. иначе выполняются инструкции в соответствующем else.

-во втором варианте так же все 3 условия всегда будут проверяться, но если третье не выполняется, то выполняется инструкция в else

-в третьем варианте последующие условия проверяются, только если не выполняется предыдущее. И если ниодно из них не выполняется, то выполняется инструкция в else.
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
27.10.2014, 15:27
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if($a<100){} - если значение меньше 100 то что-то делаем
else{}- если больше или равно тогда это
if(){} - аналогично вышеуказанному но это уже условие 2
else{} - если условие 2 неверно
if(){} - если условие 3 верно
else{} - если условие 3 неверно
 
Вариант 2
 
 
if($a<100){} - если больше 100 делаем и  забываем про это
if(){} -если условие 2 выполнено делаем и забываем
if(){} - если условие 3 выполнено то делаем
else{} - если не выполнено условие 3 делаем
 
Вариант 3
 
 
if($a<100){} - если условие 1 верно делаем
elseif(){} - если не верно условие 1 делаем если верно условие 2
elseif(){} - если не вено ни 1, ни 2 , а 3 верно
else{} - если не верно никакое условие
1
27.10.2014, 17:10

Не по теме:

Albaz, Вы же наимудрейший из мудрецов (судя по Вашим ответам в разделе "питон"). :) Я так понимаю, что Вы снизошли к нам, смертным, чтобы все ответы на Ваш вопрос признать неверными и научить нас (вернее тех, кто отвечает по теме) уму-разуму? :) Что-ж, мы внемлем Вам! :D

0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
27.10.2014, 18:19
Цитата Сообщение от Albaz Посмотреть сообщение
остальное лишь приблуды "литературного" наследия Perlа.
когда перл на горшке сидел - в си это уже было все написано. Не хотите синтаксического сахара -сидите на горшке
1
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
27.10.2014, 18:55  [ТС]
Цитата Сообщение от tgarl Посмотреть сообщение
...
- Вы вносите обширные толкования, но не даете выводов. Потрудитесь, плиз, с резюме))
Цитата Сообщение от lyod Посмотреть сообщение
Не по теме:
- ну раз любите Не по теме:... Да какая разница, каковы мои мотивы? Требуется ответить на вопрос, а не разгадать причины его появления (по- моему)
Цитата Сообщение от ads Посмотреть сообщение
Не хотите синтаксического сахара
- хотим, очень хотим, только ткните нас в него носом в силу нашего молочного возраста (в программировании, не в философии - ремарка для
Цитата Сообщение от lyod Посмотреть сообщение
lyod
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
27.10.2014, 19:04
Цитата Сообщение от Albaz Посмотреть сообщение
только ткните нас в него носом
о сахаре. вы можете написать свой, "самый правильный" язык програмирования. Согласитесь, это будет проще, чем удивляться тому что в одном несовершенном языке можно что-то одно и то же сделать разными способами.
1
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
27.10.2014, 19:11  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
языке можно что-то сделать разными способами.
Уважаемый, я не буду поднимать тему различий в догматических концепциях Перла и Питона.
Ну если угодно, да, я сторонник секты Питонистов - все дОлжно писАться однообразно. Так мыслит магистр философии.
Пусть филологи-литераторы переносят свои мотивы и в программирование, пытаются воплотить исскуство и в код, применить творческий подход. Может даже появятся зарифмованные программы и соревноваться кодеры будут не за производительность, а эстетическое достоинство кода...
Я их не хаю, но придерживаюсь Питонического, утилитарно-прагматического подхода. Мне жаль, что PHP приходится знать в силу его востребованности, хотя "конткстное" толкование и "синонимичность" меня изрядно расстраивают
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
27.10.2014, 19:18
Цитата Сообщение от Albaz Посмотреть сообщение
но не даете выводов. Потрудитесь, плиз, с резюме))
Цитата Сообщение от Albaz Посмотреть сообщение
На мой взгляд варианты 2 и 3 тождественны.
я предполагал, что вы глядя на то как написанные вами условия будут выполняться сами сделаете вывод в неверности своих высказываний(предположений), потому как все достаточно наглядно, но если вы не можете сделать выводы я потружусь:
вариант 1 - 3 условия с проверкой выполнения если верно и если не верно, условия проверяются все
вариант 2 - 3 условия в двух из которых нет проверки "а если не верно", условия проверяются все
вариант 3 - цикл условий по принципу если неверно предыдущее, то проверяем новое условие, каждое следующее условие проверяется только если предыдущее не верно, если верно, то остальные не проверяются

надеюсь мой труд поможет вам сделать правильные выводы)) тем более вам pav1uxa уже это расписал
1
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
27.10.2014, 19:21
Цитата Сообщение от Albaz Посмотреть сообщение
Так мыслит магистр философии.
Пусть филологи-литераторы переносят свои мотивы и в программирование, пытаются воплотить исскуство и в код, рпименить творческий подход.
Я их не хаю, но придерживаюсь Питонического, утилитарно-прагматического подхода.
если вас что-то расстраивает в php, то не надо плакать. вперед! делаем новый язык. классный и превосходный! без недостатков! почему вы пришли со своими соплями про недостатки тех кто вам даром предоставил платформу для зарабатывания денег? пишите на перлопитоне.. к чему ваши сопли здесь?

Добавлено через 1 минуту
Цитата Сообщение от tgarl Посмотреть сообщение
надеюсь мой труд поможет вам сделать правильные выводы))
точки с запятой стоит расставлять. многое поменяется и говнокод преобразится во что-то структурированное
1
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
27.10.2014, 19:45  [ТС]
Цитата Сообщение от tgarl Посмотреть сообщение
если вы не можете сделать выводы
Выводов то наделать мы можем сколько угодно, да не больно им доверяем) Меня уж называли Колумбом за "открытия" в элементарных циклах. ))

($a<100) - подразумевается как единственное условие задачи

Вариант 1


if($a<100){}
else{} - в это else "провалится" все что угодно, касаемое $a>=100 и причие ифы при любом логическом условии $a будут как 5-е колесо телеги - балластом
if(){}
else{}
if(){}
else{}

Прочие варианты уже пояснены.
Спасибо, что ввязались в дискуссию. Полемика - лучший способ научения))
Пока я обосновывал свою точку, стал нечто яснее понимать!

Добавлено через 14 минут
Цитата Сообщение от ads Посмотреть сообщение
почему вы пришли со своими соплями про недостатки
Ну давайте представим иначе.
Я пришел с вопросом - не понимаю, помогите, разъясните...
Или если угодно мыслить иначе - реву от негодования : "Ну почему логика разработчиков языка отличалась от моей!". )))
Просто хочу избрать самый короткий, простой и эффективный способ написания кода.
Да, если отбросить все шутки и эмоциональные "приблуды", это последнее и есть мой главный мотив. Говорят, если человек начал программировать не с какого-нить Паскаля, то все "литературные" приамбулы PHP легко порождают, как справедливо заметил ads, проблему говнокодерства ...
0
> /dev/null
 Аватар для Блеф
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
27.10.2014, 20:26
Цитата Сообщение от Albaz Посмотреть сообщение
elseif() можно вообще выкинуть без какого-либо ущерба.
рас такое пошло, давайте ото всюду выкинем elseif, к примеру из с++(else if).
1
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
27.10.2014, 20:47  [ТС]
Цитата Сообщение от bleef159 Посмотреть сообщение
давайте ото всюду выкинем elseif, к примеру из с++
знаете, во всех языках не получится...
Где-то нельзя,
if($a<100){}
if(){}
if(){}
else{}
например в Паскале, как помню нечто:
if($a<100){}
else if(){}
else if(){}
else{}
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
27.10.2014, 21:40
Цитата Сообщение от Albaz Посмотреть сообщение
Где-то нельзя,
if($a<100){}
if(){}
if(){}
else{}
например в Паскале, как помню нечто:
if($a<100){}
else if(){}
else if(){}
else{}
да можно это везде, это просто 2 совершенно разные варианта. в первом варианте могут выполниться сразу 3 условия, а во втором варианте только одно, вот и все. и во всех языках программирования оба варианта работают.

Если за 4 курса института и за 110 постов здесь Вы не научились понимать разницу между if(){} if(){} if(){} и if(){} else if(){} else if(){} else {}, имхо Вам стоит прекратить этим заниматься. Либо действительно читать учебники\практиковаться вместо того чтобы флудить тут. Это базовые конструкции для большинства языков, с этого чуть ли не начинают изучение программирование. И php не исключение. Единственная особенность - в php вместо else if Вы можете писать elseif (слитно). Разницы почти нет.
0
71 / 71 / 13
Регистрация: 01.09.2011
Сообщений: 379
27.10.2014, 22:13
совершенно согласен с pav1uxa,
0
-30 / 8 / 1
Регистрация: 31.05.2013
Сообщений: 485
05.11.2014, 20:55  [ТС]
Вам стоит прекратить этим заниматься.
Можно уточнить, чем "этим"? Вы подразумеваете, что я не усваиваю формализованные запаиси (код)?
Или речь про способность логически мыслить в категориях "если - то"?
0
48 / 48 / 26
Регистрация: 31.05.2011
Сообщений: 139
05.11.2014, 21:38
Из полемики так и не понял, разъяснил для себя автор различия или нет. На всякий случай приведу пример:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$a = 100;
$b = 200;
$c = 300;
if($a == 100) {
    echo "a";
}
if($b == 200) {
    echo "b";
}
if($c == 300) {
    echo "c";
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$a = 100;
$b = 200;
$c = 300;
if($a == 100) {
    echo "a";
}
elseif($b == 200) {
    echo "b";
}
elseif($c == 300) {
    echo "c";
}
Запустите оба примера и посмотрите разницу вывода.
0
06.11.2014, 10:32

Не по теме:

Цитата Сообщение от Reposlav Посмотреть сообщение
Из полемики так и не понял, разъяснил для себя автор различия или нет.
А я из полемики понял, что автору это вовсе не интересно. Ему побеседовать не с кем было...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2014, 10:32
Помогаю со студенческими работами здесь

Чем отличаются С, С++ и C#?
Пока учился в институте писал всякую мелочь на TASMе. По работе тоже немного пользовался им же. с С никогда дала не имел. Вот на днях...

Чем отличаются?
Процессор Intel Core i5-3570K 3.4GHz/6MB Процессор Intel Core i5-3570 3.4GHz/6MB Я углубился в изучения компьютерного железа и хотел...

Чем отличаются JA и JG
Добрый день. Читаю инструкции языка ассемблера и возник вопрос. Чем отличаются JA и JG? Прошу простить, если где-то чайник. ...

вИЦ и PR - чем отличаются?
По вИЦ так мало информации. Интересно, чем отличается этот показатель от PR Google?

Чем отличаются операторы while и for?
Добрый вечер, чем отличается while от for, в каких случаях нужно использовать while а в каких for?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru