cin只接受布尔变量的两个输入

本文探讨了C++中cin如何处理布尔变量输入,解释了当输入非零值时如何被视为true,以及如何通过if语句进行条件判断。
这里的输出从一个运行这个程序:
输入一个整数:5
输入另一个整数:5
5和5是平等的
这项工作如何?首先我们读为X和Y的整型值下,“平等的条件表达式(x,y)”的评价。这项研究结果在调用一个函数(5,5)。在该函数中,5 = = 5进行评估,产生的值为真(自5等于5)。该值返回给调用方。由于条件评估为真,连接到如果执行的语句,产生输出“5和5是相等的”。
布尔值需要一点点的习惯,但一旦你得到你的头脑包裹在他们周围,他们在他们的简单很令人耳目一新!
非布尔条件
在上述所有的例子,我们的条件已经是布尔值(true或false),布尔变量或函数返回一个布尔值。如果你的条件是一个不评价一个布尔值的表达式,会发生什么?

您已经知道了答案:如果条件评估为一个非零的值,那么与如果语句执行的语句执行。

1
2
3
4
if (4) // non-nonsensical, but for the sake of example...
    std::cout << "hi";
else
    std::cout << "bye";

这将打印“喜”,因为4是一个非零的价值。
输入的布尔值
输入布尔值使用std::cin有时旅行新程序员了。
考虑下面的程序:

1
2
3
4
5
6
7
8
9
int main()
{
	bool b; // uninitialized variable
	std::cout << "Enter a boolean value: ";
	std::cin >> b;
        std::cout << "You entered: " << b;
 
	return 0;
}
等等,什么?
原来,std::cin只接受布尔变量的两个输入:0和1(不是真的或假的)。任何其他的输入会导致std::cin默默地失败。在这种情况下,因为我们进入了“真”,std::cin默默的失败并没有指定一个值B.因此,std::cout时打印的B值,它打印任何初始化值在变量B.垃圾!
测验
1)一个素数是一个大于1的整数,它只能被1和它自己分开。编写一个程序,要求用户输入一个数字的整数。如果用户进入一个单一的数字是素数(2,3,5,或7),打印“数字是素数”。否则,打印“数字是不是素数”。
提示:使用如果语句来比较用户输入到的素数的数字。使用一个布尔值来跟踪用户是否输入了素数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值