Каковы различия между если, еще, и еще если?

Мое любимое определение, с более практическим фокусом, найдено в Главе 1 превосходной книги Прагматически настроенным Программистом: От Подмастерья Ведущему устройству Andrew Hunt и David Thomas:

Энтропия программного обеспечения

, В то время как разработка программного обеспечения неуязвима почти для всех физических законов, энтропия сильно ударяет нас. Энтропия является термином от физики, которая относится на сумму "разупорядочения" в системе. К сожалению, законы термодинамики гарантируют, что энтропия во вселенной склоняется к максимуму. Когда увеличения разупорядочения программного обеспечения, программисты называют его "гнилью программного обеспечения. "

существует много факторов, которые могут способствовать гнили программного обеспечения. Самый важный, кажется, психология или культура, на работе над проектом. Даже если Вы - команда одной, психология Вашего проекта может быть очень тонкой вещью. Несмотря на лучшие положенные планы и лучших людей, проект может все еще испытать крушение и затухание в течение его времени жизни. Все же существуют другие проекты, которые, несмотря на огромные трудности и постоянные неудачи, успешно борются с тенденцией природы к разупорядочению и умеют выйти вполне прилично.

...

...

разбитое окно А.

Одно разбитое окно, оставленное неотремонтированным в течение любого существенного отрезка времени, прививает в жителях здания чувство abandonment— смысл, о котором власть имущие не заботятся о здании. Таким образом, другое окно разбито. Люди начинают сорить. Граффити появляются. Серьезное структурное повреждение начинается. За относительно короткий промежуток времени здание становится поврежденным вне требования владельца зафиксировать его, и смысл отказа становится действительностью.

"Теория Разбитого окна" вселила полицейские управления в Нью-Йорк и другие крупнейшие города для расправлений с маленьким материалом для не допускания большого материала.Работает: сохраняя сверху разбитых окон, граффити и другие маленькие нарушения снизили уровень тяжкого преступления.

Подсказка 4

не Живет с Разбитыми окнами

, не оставляют "разбитые окна" (плохие проекты, неправильные решения или плохой код) неотремонтированный. Зафиксируйте каждого, как только это обнаружено. Если существует недостаточное время для фиксации его правильно, то забейте его. Возможно, можно закомментировать незаконный код, или отобразить "Не Реализованное" сообщение или заменить фиктивными данными вместо этого. Примите некоторые меры, чтобы предотвратить дальнейшее повреждение и показать, что Вы на высоте положения.

текст, взятый от: http://pragprog.com/the-pragmatic-programmer/extracts/software-entropy

7
задан Bart 11 December 2012 в 12:50
поделиться

13 ответов

**IF** you are confused
 read the c# spec
**ELSE IF** you are kind of confused
 read some books
**ELSE**
 everything should be OK.

:)

22
ответ дан 6 December 2019 в 04:44
поделиться

Это основные приказы принятия решений, которые есть в большинстве языков программирования; он помогает вам определить последовательность действий, которые будет выполнять ваша программа. if сообщает компилятору, что у вас есть вопрос, и вопрос заключается в условии, заключенном в круглые скобки

if (condition) {
    thingsToDo()..
}

, а часть else является дополнением к этой структуре, чтобы сообщить компилятору, что нужно do if the condition is false

if (condition) {
    thingsToDo()..
} else {
    thingsToDoInOtherCase()..
}

вы можете объединить их, чтобы сформировать else if , когда первое условие ложно, но вы хотите задать другой вопрос, прежде чем решать, что делать.

if (condition) {
    thingsToDo()..
} else if (condition2) {
    thingsToDoInTheSecondCase()..
}else {
    thingsToDoInOtherCase()..
}
1
ответ дан 6 December 2019 в 04:44
поделиться

Синтаксис оператора if

if(condition)
    something; // executed, when condition is true
else
    otherthing; // otherwise this part is executed

Итак, в основном, else является частью if конструкция ( something и otherthing часто являются составными операторами, заключенными в {} и else часть фактически необязательна). И else if представляет собой комбинацию двух if s, где otherthing является самим if .

if(condition1)
    something;
else if(condition2)
    otherthing;
else
    totallydifferenthing;
1
ответ дан 6 December 2019 в 04:44
поделиться
if (numOptions == 1)
    return "if";
else if (numOptions > 2)
    return "else if";
else 
    return "else";
2
ответ дан 6 December 2019 в 04:44
поделиться

Они означают именно то, что они означают на английском языке.

ЕСЛИ условие истинно, сделайте что-нибудь, Иначе (иначе) ЕСЛИ другое условие истинно, сделайте что-нибудь, ELSE сделайте это, когда все остальное терпит неудачу.

Обратите внимание, что здесь нет конструкции else if , только if и else , но синтаксис позволяет размещать else и if вместе, и соглашение не состоит в том, чтобы вкладывать их глубже, когда вы это делаете. Например:

if( x )
{
    ...
}
else if( y )
{
    ...
}
else
{
    ...
}

Синтаксически идентичен:

if( x )
{
    ...
}
else 
{
    if( y )
    {
        ...
    }
    else
    {
        ...
    }
}

Синтаксис в обоих случаях:

if *<statment|statment-block>* else *<statment|statment-block>*

и if сам по себе является статусом, так что один только синтаксис поддерживает использование else if

2
ответ дан 6 December 2019 в 04:44
поделиться

Я думаю, что это помогает думать о "else" как о слове "ИНАЧЕ".

поэтому вы могли бы прочитать это так:

if (something is true)
{
   // do stuff
}
otherwise if (some other thing is true)
{
   // do some stuff
}
otherwise
{
   // do some other stuff :)
}
3
ответ дан 6 December 2019 в 04:44
поделиться

If, else и else if - все конструкции, помогающие коду «ветвления». По сути, вы используете их всякий раз, когда хотите принять решение.

Например, «если будет солнечно, я выйду на улицу. в противном случае я останусь внутри '

В коде (игнорируя лишнее)

if (sunny) {
  goOutside();
}
else {
  stayInside();
}

Вы МОЖЕТЕ использовать операторы' else if ', если вы хотите добавить' дополнительные 'условия. Расширение предыдущего примера: «Если будет солнечно, я выйду на улицу. Если будет шторм, я пойду в подвал, иначе останусь внутри»

В коде

if (sunny) {
  goOutside();
}
else if (stormy) {
  goDownstairs();
}
else {
  stayInside();
}

Раздел EDIT:

Вот как вы можете написать несколько if в виде условий. Следующий пример можно записать как минимум двумя способами:

«Если солнечно и тепло, выйди на улицу. Если солнечно и холодно, ничего не делайте »

if (sunny) {
   if (warm) {
     goOutside();
   }
   else if (cold) {
     doNothing();
   }
}

OR

if (sunny && warm) {
   goOutside();
}
else if (sunny && cold) {
   doNothing();
}
13
ответ дан 6 December 2019 в 04:44
поделиться

Нет " иначе, если ". У вас есть следующее:

if (condition)
    statement or block

Или:

if (condition)
    statement or block
else
    statement or block

В первом случае оператор или блок выполняется, если условие истинно (отличное от 0). Во втором случае, если условие истинно, выполняется первый оператор или блок, в противном случае выполняется второй оператор или блок.

Итак, когда вы пишете « else if », это означает « оператор else ", где второй оператор является оператором if . У вас могут возникнуть проблемы, если вы попытаетесь сделать это:

if (condition)
    if (condition)
        statement or block
else
    statement or block

Проблема здесь в том, что вы хотите, чтобы « else » ссылался на первый « if », но на самом деле вы имеете в виду ко второму. Вы исправите это, выполнив:

if (condition)
{
    if (condition)
        statement or block
} else
    statement or block
9
ответ дан 6 December 2019 в 04:44
поделиться

Мертвый простой псевдокод. Объяснение:

/* If Example */
if(condition_is_true){
   do_this
}
now_do_this_regardless_of_whether_condition_was_true_or_false

/*  If-Else Example  */
if(condition_is_true){
    do_this
}else{
    do_this_if_condition_was_false
}
now_do_this_regardless_of_whether_condition_was_true_or_false

/* If-ElseIf-Else Example */
if(condition_is_true){
    do_this
}else if(different_condition_is_true){
    do_this_only_if_first_condition_was_false_and_different_condition_was_true
}else{
    do_this_only_if_neither_condition_was_true
}
now_do_this_regardless_of_whether_condition_was_true_or_false
5
ответ дан 6 December 2019 в 04:44
поделиться

Оператор if следует такой структуре:

if (condition)
{
    // executed only if "condition" is true
}
else if (other condition)
{
    // executed only if "condition" was false and "other condition" is true
}
else
{
    // executed only if both "condition" and "other condition" were false
}

Часть if - единственный блок, который является абсолютно обязательным. иначе, если позволяет вам сказать «хорошо, если предыдущее условие не было истинным, то, если это условие истинно ...». В else сказано: «Если ни одно из вышеперечисленных условий не было истинным ...»

У вас может быть несколько блоков else if , но только один блок if и только один (или ноль ) else блоки.

54
ответ дан 6 December 2019 в 04:44
поделиться

If-elseif-else может быть записано как вложенное if-else. Они (логически говоря) эквивалентны:

if (A) 
{
    doA();
}
else if (B)
{
    doB();
}
else if (C)
{
    doC();
}
else
{
    doX();
}

то же самое, что:

if (A) 
{
    doA();
}
else
{
    if (B)
    {
        doB();
    }
    else
    {
         if (C)
         {
             doC();
         }
         else
         {
             doX();
         }
    }
}

В результате в конечном итоге только один из doA , doB , doC или doX будут оцениваться.

30
ответ дан 6 December 2019 в 04:44
поделиться

else if можно использовать вместе с if и else, чтобы дальнейшее разбиение логики

//if less than zero
if( myInt < 0){
      //do something
}else if( myInt > 0 && myInt < 10){
//else if between 0 and 10      
      //do something
}else{
//else all others  
      //do something
}
1
ответ дан 6 December 2019 в 04:44
поделиться

Оператор if использует результаты логическое выражение, определяющее, будет ли выполняться один из двух блоков кода.

С этим кодом

if (logical expression) {
    code block 1;
} else {
    code block 2;
}

, если логическое выражение истинно, будут выполняться только операторы в блоке кода 1; если false, только операторы в кодовом блоке 2.

В случае, если необходимо выполнить несколько аналогичных тестов (например, если мы проверяем, что число меньше нуля, равно нулю или больше нуля), тогда второй тест может быть размещен как первый оператор блока кода else.

if (logical expression 1) {
    code block 1;
} else {
    if (logical expression 2) {
        code block 2;
    } else {
        code block 3;
    }
}

В этом случае блок кода 1 выполняется, если логическое выражение 1 истинно; кодовый блок 2, если логическое выражение 1 ложно, а логическое выражение 2 истинно; кодовый блок 3, если оба логических выражения ложны.

Очевидно, это может быть повторено с другим оператором if в качестве первого оператора кодового блока 3.

Оператор else if является просто переформатированной версией этого кода.

if (logical expression 1) {
    code block 1;
} else if (logical expression 2) {
    code block 2;
} else {
    code block 3;
}
1
ответ дан 6 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: