C++ If Else conditions
C++ If Else conditions
我已经尝试了这么长时间,似乎无法让它发挥作用。对于每个输入值,程序始终引用第一个条件。有人知道代码出了什么问题吗?
#include <iostream>
using namespace std;
int main()
{
int grade;
cout <<"Enter a grade between 0 and 100:";
cin>>grade;
if (0 <= grade <= 59){
cout<<"The grade for " <<grade<<" is F";
}
else if (60 <= grade <= 69){
cout<<"The grade for " <<grade<<" is D";
}
else if (70 <= grade <= 79){
cout<<"The grade for " <<grade<<" is C";
}
else if (80 <= grade <= 89){
cout<<"The grade for " <<grade<<" is B";
}
else if (90 <= grade <= 100){
cout<<"The grade for " <<grade<<" is A";
}
system("pause");
return 0;
}
重写保护
0 <= grade <= 59
带有
0 <= grade && grade <= 59
C++这样解析你的表达式:
(0 <= grade) <= 59
因此它将CCD_ 1值与59进行比较。也就是说,布尔true
是1,并且第一个if
块被触发
您在检查范围条件时做得不对。测量量程的正确方法是使用&&
运算符。
这样做:
if (grade>=0 && grade <= 59) // it means grade is greater or equal to 0 and grade is lesser or equal to 59
为每个if条件替换类似
不能用那种方式编写0 <= x <= 59
。或者更确切地说,你可以,但这并不意味着你认为它意味着什么。
它被这样分析。0 <= x
被评估并且被确定为真或假。这些布尔值分别由1或0表示。然后对得到的1 <= 59
或0 <= 59
进行评估,并且将始终被认为是真的。
顺便说一句,当你学习编程时,我认为正是这样的事情使Java成为一种很好的语言。它是强类型,这大致意味着像这样的事情会产生编译时错误,而不是做一些你不想做的事情。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 如何删除peer if else分支中的冗长句子
- 我似乎对if/else的基本语句有问题:/
- 使用if-else将数字转换为单词
- c++ std::enable_if .... else?
- 如果 else 语句不断循环
- 为什么这个案例陈述需要一个"if else"而不仅仅是一个"if"?
- C++ If/Else 语句被跳过
- 为什么我的最后一个 ELSE 条件无法正确执行
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 如何将 if else 语句重写为 switch 语句
- 在 C++ 中的 if-else if- else 语句期间更改变量
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 具有嵌套 if-else 的循环的时间复杂度
- 如果 else 语句使用大写和小写字母
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- 为什么无论输入如何,所有 if-else 语句都会打印?
- C++ If Else conditions