55 |
С т р а н и ц а
Код внутри фигурных скобок вы сможете получить лишь, если
isHungry == true
. В
противном случае, в доступе вам будет отказано и вы будете вынуждены
пропустить весь этот блок кода.
Совет
Мы можем получить такой же эффект, просто написав следующую строку кода:
if( isHungry ) //
иди только сюда, если isHungry будет true
Это может быть применено как альтернатива для следующего:
if( isHungry == true )
Причина, по которой программисты могут использовать форму
if( isHungry )
,
заключается в желании избежать возможности совершения ошибок. Если случайно
написать
if( isHungry = true )
,
isHungry
будет устанавливаться на
true
каждый раз при
встрече с утверждением с if! Во избежание такой возможности, вместо этого мы
можем просто написать
if( isHungry )
. Альтернативно, некоторые (мудрые)
программисты используют то, что называется условия Yoda, чтобы проверять
утверждения с if:
if( true == isHungry )
. Причина писать утверждение с if таким
образом, в том, что если мы случайно напишем
if( true = isHungry )
, то компилятор
выявит ошибку, и мы узнаем где она.
Попробуйте запустить этот сегмент кода, что бы увидеть, что я имею в виду:
int x = 4, y = 5;
cout << "Is x equal to y? C++ says: " << (x = y) << endl; //bad!
//
строка сверху переписывает значение в x на то, что было в y,
//
и так как строка сверху содержит присвоение x = y
//
нам следовало бы использовать (x == y) теперь.
cout << "x = " << x << ", y = " << y << endl;
Следующая строка показывает вывод предыдущей строки кода:
Is x equal to y? C++ says: 5
x = 5, y = 5
Строка кода, которая имеет (x = y) переписывает предыдущее значение х (которое
было 4) на значение y (которым является 5). И хотя мы пытались проверить, равны
ли переменные х и y, в предыдущем утверждении, переменной х было назначено
значение переменной y.
Достарыңызбен бөлісу: