即使没有错误,其他条件也不起作用
Else condition not working even tho there is no error
我正在使用 if else 条件在 c 中编写程序,它 运行 完全没问题,没有任何错误,但它不是 运行 else 条件(即即使我给它在应该打印 else 条件的地方输入,它给了我 else if 条件而不是 else 条件),这里是代码
if(Number_Of_People==1){
printf("Show us your identification so we can proceed!");
}
else if(1<Number_Of_People<=6){
printf("Show us the identification of each member so that we can proceed!");
}
else
{
printf("Sorry, we dont have rooms for so many people!");
}
这个:
if(1<Number_Of_People<=6)
并没有按照您的想法行事 - 考虑一下:
else if(Number_Of_People > 1 && Number_Of_People<=6)
请注意,当您在第一种情况下明确检查 1 时,实际查找大于 1 的唯一值是 0 或负值。
if语句中的表达式
else if(1<Number_Of_People<=6){
可以等效地重写为
else if( ( 1 < Number_Of_People ) <=6 ){
关系运算符 <
产生 0 或 1,具体取决于带有关系运算符的表达式在逻辑上是假还是真。
因此在任何情况下子表达式 ( 1 < Number_Of_People )
等于 0 或 1 的结果都小于 6
.
因此,如果跳过前面的 if 语句,将始终评估此 if 语句。
你需要重写上面的if operator like
else if( ( 1 < Number_Of_People ) && ( Number_Of_People <= 6 ) ){
我正在使用 if else 条件在 c 中编写程序,它 运行 完全没问题,没有任何错误,但它不是 运行 else 条件(即即使我给它在应该打印 else 条件的地方输入,它给了我 else if 条件而不是 else 条件),这里是代码
if(Number_Of_People==1){
printf("Show us your identification so we can proceed!");
}
else if(1<Number_Of_People<=6){
printf("Show us the identification of each member so that we can proceed!");
}
else
{
printf("Sorry, we dont have rooms for so many people!");
}
这个:
if(1<Number_Of_People<=6)
并没有按照您的想法行事 - 考虑一下:
else if(Number_Of_People > 1 && Number_Of_People<=6)
请注意,当您在第一种情况下明确检查 1 时,实际查找大于 1 的唯一值是 0 或负值。
if语句中的表达式
else if(1<Number_Of_People<=6){
可以等效地重写为
else if( ( 1 < Number_Of_People ) <=6 ){
关系运算符 <
产生 0 或 1,具体取决于带有关系运算符的表达式在逻辑上是假还是真。
因此在任何情况下子表达式 ( 1 < Number_Of_People )
等于 0 或 1 的结果都小于 6
.
因此,如果跳过前面的 if 语句,将始终评估此 if 语句。
你需要重写上面的if operator like
else if( ( 1 < Number_Of_People ) && ( Number_Of_People <= 6 ) ){