Изучаем С++ создавая игры в ue4 Уилльям Шериф Изучайте программирование С++ с интересным применением реально мира, что позволит вам создавать ваши собственные игры!



Pdf көрінісі
бет76/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   72   73   74   75   76   77   78   79   ...   252
Оператор Не (!) 
Оператор  не  !  удобен  для  противоположного  обращения  переменной  типа 
boolean. Посмотрите на следующий пример кода: 
bool wearingSocks = true; // 
носки надеты 
if( !wearingSocks ) // 
тоже самое что и if( false == wearingSocks ) 
{  
cout << "
Надеть носки!" << endl; 
} else 

cout 
<< "Вы уже в носках" << endl; 
}
 


58 | 
С т р а н и ц а
 
 
Данное утверждение проверяет, надеты ли на вас носки. Затем вы даёте команду,  
надеть носки. Оператор не ! обращает любое значение в переменной типа boolean 
на противоположное. 
 
Мы используем так называемую “таблицу правды”, чтобы показать все возможные 
результаты использования оператора не ! для булевых переменных: 
носкиНадеты 
wearingSocks  
!носкиНадеты 
!wearingSocks 
true 
false 
false 
true 
Итак,  в  то  время  как  wearingSocks  имеет  значение  true,  !wearingSocks  имеет 
противоположное значение false.  
Упражнения 
1.  Как  вы  думаете,  каким  будет  значение  !!wearingSocks,  если  значение 
wearingSocks будет true? 
2.  Каково значение переменной isVisible, после запуска следующего кода? 
bool hidden = true;                   
// bool спрятан = true  
bool isVisible = !hidden;           
// bool являетсяВидимым = !спрятан 
Решение 
1.  Если  wearingSocks  равно  true,  тогда  !wearingSocks  равно  false.  Из  чего 
следует, что !!wearingSocks снова обретает значение true. Это как сказать:”Я 
не не голоден”. "Не не" даёт двоенное отрицание, так что это предложение 
означает, что я вообще то голоден.  
2.  Ответ на второй вопрос будет false. Переменная hidden имела значение true, 
так что !hidden даёт false. После чего false сохраняется в переменной isVisible. 
Подсказка 
Оператор  не  !  иногда  в  просторечии  называется  bang  (что  либо  внезапное,  как 
хлопок).  Предыдущая  операция  bang  bang  (!!)  является  двойным  негативом  и 
двойной  логической  инверсией.  Если  вы  применили  bang-bang  для  булевой 
переменной,  то  нет  никого  цепного  изменения  переменной.  Если  вы  примените 
bang-bang  для  целочисленной  переменной  (int),  то  эта  переменная  просто  станет 


59 | 
С т р а н и ц а
 
 
булевой  переменной    (true  или  false).  Если  значение  целочисленной  переменной 
больше  нуля,  оно  упрощается  до  значения  true.  Если  значение  целочисленной 
переменной уже является 0, оно упрощается до значения false. 


Достарыңызбен бөлісу:
1   ...   72   73   74   75   76   77   78   79   ...   252




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет