将布尔值赋值为布尔变量

时间:2015-05-26 19:01:48

标签: c++ boolean

int x = 5;    
bool t = ((x % 3) && (x % 4));

当我在visual studio中尝试此代码时,我得到变量true的值t。这段代码是如何工作的?

4 个答案:

答案 0 :(得分:2)

首先,你有&&运算符,它比较两个值并返回一个布尔值,因此t将是一个布尔值。其次,在C ++中,除0之外的每个值都将计算为true,因此x % 3(评估为2将返回true,然后x % 4,其将计算为1将也回归真实。

所以最后你有

bool t = (x % 3) && (x % 4);

等于

bool t = 2 && 1;

等于

bool t = true && true;

等于

bool t = true;

答案 1 :(得分:0)

运算符%返回除法后的余数(模数),true是任何非0的值。

5 % 3 == 2
5 % 4 == 1
2 && 1 == true && true == true

答案 2 :(得分:0)

对于AND(&&)和OR(||)等逻辑操作,所有非零值都被视为true

x%3 -s模块操作返回值2, x%4返回1

2&& 1等于真&&是的,这等于真。

对bool类型变量的所有非零值赋值都被视为true或1,并且所有零值赋值都被视为false或0。

答案 3 :(得分:-1)

你可以这样做:

  

bool t =(x%3!= 0)&& (x%4!= 0);