Мое любимое определение, с более практическим фокусом, найдено в Главе 1 превосходной книги Прагматически настроенным Программистом: От Подмастерья Ведущему устройству Andrew Hunt и David Thomas:
Энтропия программного обеспечения
, В то время как разработка программного обеспечения неуязвима почти для всех физических законов, энтропия сильно ударяет нас. Энтропия является термином от физики, которая относится на сумму "разупорядочения" в системе. К сожалению, законы термодинамики гарантируют, что энтропия во вселенной склоняется к максимуму. Когда увеличения разупорядочения программного обеспечения, программисты называют его "гнилью программного обеспечения. "
существует много факторов, которые могут способствовать гнили программного обеспечения. Самый важный, кажется, психология или культура, на работе над проектом. Даже если Вы - команда одной, психология Вашего проекта может быть очень тонкой вещью. Несмотря на лучшие положенные планы и лучших людей, проект может все еще испытать крушение и затухание в течение его времени жизни. Все же существуют другие проекты, которые, несмотря на огромные трудности и постоянные неудачи, успешно борются с тенденцией природы к разупорядочению и умеют выйти вполне прилично.
...
...
разбитое окно А.
Одно разбитое окно, оставленное неотремонтированным в течение любого существенного отрезка времени, прививает в жителях здания чувство abandonment— смысл, о котором власть имущие не заботятся о здании. Таким образом, другое окно разбито. Люди начинают сорить. Граффити появляются. Серьезное структурное повреждение начинается. За относительно короткий промежуток времени здание становится поврежденным вне требования владельца зафиксировать его, и смысл отказа становится действительностью.
"Теория Разбитого окна" вселила полицейские управления в Нью-Йорк и другие крупнейшие города для расправлений с маленьким материалом для не допускания большого материала.Работает: сохраняя сверху разбитых окон, граффити и другие маленькие нарушения снизили уровень тяжкого преступления.
Подсказка 4
не Живет с Разбитыми окнами
, не оставляют "разбитые окна" (плохие проекты, неправильные решения или плохой код) неотремонтированный. Зафиксируйте каждого, как только это обнаружено. Если существует недостаточное время для фиксации его правильно, то забейте его. Возможно, можно закомментировать незаконный код, или отобразить "Не Реализованное" сообщение или заменить фиктивными данными вместо этого. Примите некоторые меры, чтобы предотвратить дальнейшее повреждение и показать, что Вы на высоте положения.
текст, взятый от: http://pragprog.com/the-pragmatic-programmer/extracts/software-entropy
**IF** you are confused
read the c# spec
**ELSE IF** you are kind of confused
read some books
**ELSE**
everything should be OK.
:)
Это основные приказы принятия решений, которые есть в большинстве языков программирования; он помогает вам определить последовательность действий, которые будет выполнять ваша программа. 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()..
}
Синтаксис оператора 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;
if (numOptions == 1)
return "if";
else if (numOptions > 2)
return "else if";
else
return "else";
Они означают именно то, что они означают на английском языке.
ЕСЛИ условие истинно, сделайте что-нибудь, Иначе (иначе) ЕСЛИ другое условие истинно, сделайте что-нибудь, 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
Я думаю, что это помогает думать о "else" как о слове "ИНАЧЕ".
поэтому вы могли бы прочитать это так:
if (something is true)
{
// do stuff
}
otherwise if (some other thing is true)
{
// do some stuff
}
otherwise
{
// do some other stuff :)
}
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();
}
Нет " иначе, если
". У вас есть следующее:
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
Мертвый простой псевдокод. Объяснение:
/* 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
Оператор 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
блоки.
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
будут оцениваться.
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
}
Оператор 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;
}