C++ 如何阻止在switch语句中跳过初始化变量?
我对编程相当陌生,我一直在用switch语句制作一个简单的菜单,因为我不断得到一个“错误C2360‘total’的初始化被‘case’标签跳过”。我不知道为什么会发生这种情况,也不知道如何解决它!感谢您的帮助/批评:DC++ 如何阻止在switch语句中跳过初始化变量?,c++,C++,我对编程相当陌生,我一直在用switch语句制作一个简单的菜单,因为我不断得到一个“错误C2360‘total’的初始化被‘case’标签跳过”。我不知道为什么会发生这种情况,也不知道如何解决它!感谢您的帮助/批评:D #include <iostream> #include <iomanip> using namespace std; int main() { int choice; double a, b;
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int choice;
double a, b;
//MENU
cout << setw(20) << setfill('-') << "" << "MENU" << setw(20) << setfill('-') << "" << endl;
cout << "1. Addition " << endl;
cout << "2. Subtraction " << endl;
cout << "3. Multiplication " << endl;
cout << "4. Division " << endl;
cout << endl;
//USER INPUT
cout << "What would you like do do? ";
cin >> choice;
cout << endl;
//SWITCH CASE
switch (choice)
{
case 1:
cout << "Enter 2 numbers: ";
cin >> a >> b;
long double total = (a + b);
cout << "The total is: " << total;
cout << endl;
break;
case 2:
cout << "Enter 2 numbers: ";
cin >> a >> b;
long double totalM = (a * b);
cout << "The total is: " << totalM;
cout << endl;
break;
}
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
智力选择;
双a,b;
//菜单
cout您需要将您的个别案例的内容放在大括号内。这种范围界定实际上总是可以完成的,但仅当您是表中的新变量时才需要
int i;
switch(i)
{
case(1):
{
int newVariable;
// ... do stuff
}
break;
}
我的建议是尽量减少代码的重复。我的意思是,如果所有4个选项都要求2个数字,则不必在切换中这样做。如果所有4个选项都将打印一个长双精度的总数,则也不必在切换中这样做。