为什么我一直得到"错误:在' case'"之前预期不合格的id?

时间:2018-03-01 23:33:04

标签: c++ switch-statement

我正在创建一个代码,用户可以使用switch语句决定他们想要查看哪种形状。我在前四个案件中做得很好但是当我到达第五个案件时我遇到了麻烦。我继续收到错误说"错误:在' case'之前预期的不合格ID "每当我尝试制作第五个案例时,我都无法解决问题。

我的代码发生了什么?

    #include <iostream>
using namespace std;
int main() {
int choice;
cout << "Please enter the shape you would like to see" << endl;
cout << "1. Rectangle" << endl;
cout << "2. Square" << endl;
cout << "3. Right Triangle" << endl;
cout << "4. Isosceles Triangle" << endl;
cout << "5. Kite" << endl;
cout << "6. Quit" << endl;
cin >> choice;

switch(choice){
    case 1 : double length,width; //rectangle
             cout << "Enter the length and width of the rectangle" << endl;
             cin >> length >> width;
             for(int i = 0; i < length; i++){
             for(int j = 0; j < width; j++){
             cout << "*";
             }
             cout << "\n";
             }
    break;
    case 2 : cout << "Enter the length and width of the square" << endl; 
             //square
             cin >> length >> width;
             for(int i = 0; i < length; i++){
             for(int j = 0; j < width; j++){
             cout << " * ";
             }
             cout << "\n";
             }
    break;
    case 3 : cout << "Enter the length of the triangle" << endl;      
             //right triangle
             cin >> length;
             for(int i = 0; i < length; i++){
             for(int j = 0; j < i; j++){
             cout << "*";
             }
             cout << "\n";
             }
    break;
    case 4 : int star=1;
             for(int i=1;i<=5;i++){
             for(int j=4;j>=i;j--){
             cout<<" ";
             }
             for(int z=0;z<star;z++){
             cout<<"*";  
             }
             cout<<endl;   
             star=star+2;
             }
             }
             }
    case 5 : cout << "???";

1 个答案:

答案 0 :(得分:1)

你的花括号不匹配。在}之前您还有两个case 5

这些括号应该在case 5之后。一个用于switch语句,一个用于main函数。

此外,第一行的#include不应有任何缩进。