注册 登录
编程论坛 C++教室

新手,问布尔值和数值

yz29631 发布于 2007-07-04 22:11, 1294 次点击
a if(0)
cout << "0 is true.";
else
cout << "0 is false.";
cout << endle

b if(1)
cout << "1 is true.";
else
cout << "1 is false.";
cout << endle

c if(-1)
cout << "-1 is true.";
else
cout << "-1 is false."
cout << endle


请前辈结合这三个代码,帮我这个新手解释下布尔和普通数字的区别啊。谢谢!
7 回复
#2
aipb20072007-07-04 22:28
0为假,非0为真。

bool类型中,true = 1,false = 0.
#3
yz296312007-07-04 22:32
可以再详细点吗?书上也是这么说。以a为例if(0) 括号中是不是为一个假命题?若为此,那么a中的结果是什么啊,请说明原因。
#4
aipb20072007-07-04 22:39
你的那个代码就可以验证了啊。
你运行看输出就知道了。
0为假,就不执行if,执行else,输出:0 is false.

其他同理。
#5
yz296312007-07-04 22:42

哦,谢谢版主啊,多谢多谢。
但是0不就是一个命题吗?If(0)不是表示满足命题0吗?

#6
aipb20072007-07-04 22:45
命题,也可以说是条件吧。

其实你不是不懂bool判断,而是if,else语句。

if (条件值){
//a……
}
else{
//b……
}
条件值成立,即非0。就执行a,否则执行b。
至于条件值,是直接给,还是被计算得到,都一样。

#7
yz296312007-07-04 22:50
我想我大致明白了,谢谢版主啊。多谢多谢
#8
野比2007-07-05 11:33

C里面0为假, !0为真... 什么是!0 ? 就是所有其他的东东...

1