Jump to content
FLProg.PRO

integer & boolean (особенности)


Dryundel
 Share

Recommended Posts

Вот так по классике выглядит присваивание значения переменной boolean по условию.

int a;
bool b;
 
if  ( a > 248){
     b = 1;
} else {
     b = 0;
}

 

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

b = a > 248;

И это будет одно и то же.

 

=============================

 

Для переменной boolean не обязательно указывать ее значение в операции сравнения if

Можно использовать оператор отрицания (инверсии)

bool a;

//	Классика
if (a == 1) {
  //Ваш код ...
}

//	Можно так
if (a) {
  //Ваш код ...
}

//	Или так
if (!a) {	//Это соответствует a==0
  //Ваш код ...
}

 

=============================

 

Есть два разных типа переменных целочисленные (int, long, unsigned long и т.п.) и логические (bool, boolean).

На первый взгляд это два несовместимых типа. НО! Не все так однозначно. :classic_smile:

 

В C++ целочисленные легко взаимодействуют с логическими. Значение true = 1, а false = 0.

Т.е. если например в математической операции участвует bool то это очень даже хорошо работает

int a = 100;
bool b = true;
int c;

c = a + b;	// c = 101
c = a - b;	// c = 99

 

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

int a;
int b;
int c;
bool d;

d = a > b;	//Если a > b то с = true
if (d) {
	c++;	//Увеличиваем с на едииницу
}

// Или так. Что в принципе одно и то же, но нет доп переменной d
if (a > b) {
	c++;	//Увеличиваем с на едииницу
}

//Но можно еще и так
с += (a > b);	//К переменной с прибавляем результат сравнения, который по сути является boolean (false или true)

 

В последнем варианте избавились еще и от оператора if.

 

.

 

 

  • Like 1
  • Thanks 2
  • Haha 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...