为什么代码块要求我在 else 的条件之后添加";"?如果我添加一个":",仍然存在逻辑错误。(查看查询主体以获取更多详细信息)



编写一个c++程序检查给定的整数是正偶数、负偶数、正奇数还是负奇数

#include <iostream>
using namespace std;
int main()
{
int n;
cout<< "Enter the number you want to check: n";
cin>>n;
if(n>0 &&n%2 ==0){
cout<< "number is positive even n";
}
else if(n<0 &&n%2 ==0){
cout<< "number is negative even n";
}
else if(n<0 &&n%2 !=0){
cout<< "number is negative odd n";
}
else (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}

return 0;
}

这是我的代码。当我没有在else (n>0 && n%2 !=0)后面加分号时。它显示了一个错误:在'{'标记之前期望';'。如果有分号,则会出现逻辑错误,无论数字是什么,都会显示其他输出。

不使用if就不能写else (condition)。正确的方法是像你这样写else if (condition),或者你可以简单地写else { cout << "Number is positive"; }

当您有条件时,您不能省略if-编译器将n>0 && n%2 !=0解释为else分支的主体,相当于:

else { 
(n>0 && n%2 !=0)
}
{
cout<< "number is positive odd n";
}       

其中是缺少分号的,如果您添加一个分号,您将得到一个不执行任何操作的表达式和一个无条件输出,相当于:

else 
n>0 && n%2 !=0;
cout<< "number is positive odd n";

由于没有任何条件涵盖n为零的情况,您可能需要

else if (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}
else {
cout << "number is zeron";
}

一行:else (n>0 && n%2 !=0)

else表示如果上述ifif-else条件都为假,则执行else条件中的逻辑,不需要任何条件。但是你加了一个条件n>0 && n%2 !=0语法错误

你可以修改:

else (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}

:

else if (n>0 && n%2 !=0){
cout<< "number is positive odd n";
}

或:

else{
cout<< "number is positive odd n";
}

最新更新