错误消息:“switch”之前需要初始化程序

问题描述 投票:0回答:1
#include <iostream>
using namespace std;
int main()

switch(age)
{
case 1:
case 2:
case 3:
case 4:
cout<< "Tricycle"<<endl;
break;
case 5:
.
.
case 15:
if (15 >= age >= 5)
cout<< "Bicycle"<<endl;
break;
case 16:
case 17:
cout<<"Motorcycle"<<endl;
break;
default:
cout<< "Motor car"<<endl;

return 0;
}

错误信息:

切换前的预期初始化程序

我尝试将

age
声明为整数...但我仍然收到错误消息。

c++ switch-statement initializer
1个回答
0
投票

您的代码中有几个错误:

int main()

您在

{
之后错过了一个空缺
main()

switch(age)

在尝试使用它之前,您没有声明

age
或为其赋予值。

.
.

根本不重视代码。所以我假设你这样做只是为了演示目的,在你的真实代码中你实际上是单独拼写每个

case

if (15 >= age >= 5)

这根本不符合您的想法。 C++ 比较不是这样进行的。您需要单独的表达式来分别比较

age
与每个值。

更不用说,如果您对

case
..
5
有单独的
15
陈述,那么这个
if
无论如何都是完全多余的。

return 0;
}

您在

}
之前的
switch
块上缺少结束语
return

话虽如此,请尝试以下操作:

#include <iostream>
using namespace std;

int main() {

    int age;

    cout << "Enter an age: ";
    cin >> age;

    switch (age)
    {
    case 1:
    case 2:
    case 3:
    case 4:
        cout << "Tricycle" << endl;
        break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
        cout << "Bicycle" << endl;
        break;
    case 16:
    case 17:
        cout << "Motorcycle" << endl;
        break;
    default:
        cout << "Motor car" << endl;
        break;
    }

    return 0;
}

或者,使用

if
代替
switch

#include <iostream>
using namespace std;

int main() {

    int age;

    cout << "Enter an age: ";
    cin >> age;

    if (age >= 1 && age <= 4) {
        cout << "Tricycle" << endl;
    }
    else if (age >= 5 && age <= 15) {
        cout << "Bicycle" << endl;
    }
    else if (age >= 16 && age <= 17) {
        cout << "Motorcycle" << endl;
    }
    else {
        cout << "Motor car" << endl;
    }

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.