我的程序执行得很好,但我对如何设置while
循环有疑问。
我知道true和false的布尔值分别是1和0,但是我不理解为什么我的输出向后显示偶数和奇数(据我所知,它向后)。简单地说,我不明白为什么if ( number % 2 == 0 )
会显示一个数字是偶数,当我将其更改为1时,它显示为奇数。我正在读这行,如果(偶数等于假)。我不知道这是不是我出错了。阅读此专栏的正确方法是什么?
我设置代码的方式现在正确显示数字,我只是不明白为什么。有人可以帮忙吗?
// Program indefinitely displays an even
// or odd number until a negative number
// is entered.
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Please enter a number: ";
cin >> number;
while ( number >= 0 )
{
if ( number % 2 == 0 )
{
cout << number << " is even \n";
cout << "Please enter a number: ";
cin >> number;
}
else
{
cout << number << " is odd \n";
cout << "Please enter a number: ";
cin >> number;
}
}
cout << "Thank you. \n";
return 0;
}
答案 0 :(得分:0)
number % 2
0
如果number
除2
(即甚至),1
number
2
是正面并且不会除-1
(即奇数),number
如果2
为负{ em>并且不会除0 == 0
(即奇数)。 (最后一点必须是从C ++ 11开始的情况)。
因此,由于true
为number % 2 == 0
,true
为number
当且仅当if ( number % 2 == 0 )
甚至时才会{。}}。
所以你写了else
来记录所有偶数情况,而if ( number % 2 == 1 )
陷阱奇怪的情况。
测试true
只是对积极奇怪的测试,但较旧的C ++标准允许number
为负picturePath
。