C/C++ "else"前的预期原表达

C/C++ expected primary-expression before "else"

本文关键字:C++ else      更新时间:2023-10-16
有人能帮我吗?im刚刚开始在C/C++上编程(im使用DevC++)
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int X;
int Y;
int R;
cout << "FUNCION POTENCIA";
cout << "Ingrese primero la base y luego el exponente";
cin >> X, Y;
if (Y = 1) {
R = X;
};
//if
else() {
do
while (Y > 0) {
R = X * X;
Y--;
}; //do while
}; //else   cout<< R;
system("PAUSE");
return EXIT_SUCCESS;
} //main

您有五个错误:

  1. cin >> X, Y;不读取用户对XY的输入。它实际上是两个独立的语句:cin >> X;Y;。第一个读取X的用户输入,第二个评估Y的当前值,不对其执行任何操作。读取两个变量的用户输入:cin >> X >> Y;
  2. if (Y = 1)1分配给Y。您要检查与==:if (Y == 1)相等性,即"如果Y等于1">
  3. 不要将分号放在ifelsewhile块之后。它们是多余的,会导致这样的错误。仅在语句之后放置分号
  4. 不要把()放在else之后
  5. dowhile循环是do { ... } while (...);而不是do while (...) { ... },而while循环只是while (...) { ... }

这是正确的版本:

...
cin >> X >> Y; // 1.
if (Y == 1) { // 2.
R = X;
} // 3.
else { // 4.
while (Y > 0) { // 5.
R = X * X;
Y--;
}
// or if you want a do-while:
do {
R = X * X;
Y--;
} while (Y > 0); // semicolon here!
}

总之,选择一本书来正确地学习语言,这样你就可以停止猜测正确的语法是什么了

这是因为if语句后面有一个分号。如果报表形式为:,则更正

if(expression)
{
// If Code
}
else
{
// Else code
}
if (Y = 1) {
R = X;
};

删除此处的最后一个";"。