mat*_*att 0 c++ if-statement days
代码在我添加到部分之前工作,如果用户输入的数字高于12,我希望它说"不是一个月的数字".我试图得到if和其他工作,但它只是总是停止程序即时通讯新的编程抱歉格式不好.任何帮助都很好.谢谢.
#include <iostream>
using namespace std;
int main()
{
int month = 0;
int days;
cout << "Month: ";
cin >> month;
if (month != 1 || month != 2 || month != 3 || month != 4 || month != 5 ||
month != 6 || month != 7 || month != 8 || month != 9 || month != 10 ||
month != 11 || month != 12 ) {
cout<<"not a number for a month";
return 0;
}
if (month == 4 || month == 6 || month == 9 || month == 11)
days = 30;
else
days = 31;
cout << days;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用if条件取代那种完全邪恶的条件
if (month < 1 || month > 12){
Run Code Online (Sandbox Code Playgroud)
除了可怕之外,你||错误地使用了:你的条件总是如此true.你需要&&.
然后修复特殊情况month == 2.那时你需要知道这一年.
根据经验:如果你发现自己编写了非常繁琐的代码,那么可能有一种更简单的表达方式.