C ++ If语句错误:expected';'在'{'之前

时间:2013-04-13 01:18:35

标签: c++ if-statement

我写这篇文章是为了好玩:

#include <iostream>
#include <cstdlib>
using namespace std;

int Arsenal = rand()%3;
int Norwich = rand()%3;

int main () {
  if (Arsenal > Norwich) {
    cout << "Arsenal win the three points, they are in the Top Four";
    return 0;
  } else if (Arsenal == Norwich) {
    cout << "The game was a draw, both teams gained a point";
    return 0;
  } else (Norwich > Arsenal) {
      cout << "Norwich won, Arsenal lost";
      return 0;
    }
}

我尝试用g ++编译它,但是我收到了这个错误:

arsenalNorwich.cpp: In function, 'int main'
arsenalNorwich.cpp:15:30: error: expected ';' before '{' token

我不知道我做错了什么,我学校的CS导师也没有。虽然它只是为了好玩,但却让我发疯。

1 个答案:

答案 0 :(得分:8)

你错过了一个if

  else if (Norwich > Arsenal)
  ///^^^if missing

同时,放

是不好的
 int Arsenal = rand()%3;
 int Norwich = rand()%3;
main之前

。另一点是你应该在调用rand()之前先设置随机种子。

您的if-else可简化如下:

if (Arsenal > Norwich) {
   cout << "Arsenal win the three points, they are in the Top Four";
} else if (Arsenal == Norwich) {
   cout << "The game was a draw, both teams gained a point";
} else { //^^^no need to compare values again since it must be Norwich > Arsenal
         //when execution reaches this point
   cout << "Norwich won, Arsenal lost";
}
return 0;