我想了解为什么我的代码中跳过了 switch 语句?编译器只是没有读取 switch 语句中的数据并返回 0。我一定是做错了什么,但如果这是一个原因,我无法指出错误!
代码:
#include <iostream>
using namespace std;
void mainMenu();
void ResultUsr(int);
int main()
{
int userChoice;
int ResultUsrInput;
mainMenu();
cout << "Choice: ";
cin >> userChoice;
ResultUsr(ResultUsrInput);
return 0;
}
void mainMenu()
{
cout << "Enter your Choice for calculation" << '\n';
cout << "1 for Addition" << '\n';
cout << "2 for Subtraction" << '\n';
}
void ResultUsr (int ResultUsrInput)
{
int value1, value2;
switch (ResultUsrInput)
{
case 1:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 + value2 << "]" << '\n';
break;
case 2:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 - value2 << "]" << '\n';
break;
}
}
Run Code Online (Sandbox Code Playgroud)
ResultUsrInput调用 function 时,您尚未为变量赋值ResultUsr(ResultUsrInput)。您必须先分配该值。在您的代码中似乎您希望从用户那里获得选择,因此您应该在调用函数userChoice时在参数中使用ResultUsrmain()
ResultUsr(userChoice);
Run Code Online (Sandbox Code Playgroud)
更好的方法是您应该有default如下代码所示的情况。
void ResultUsr (int ResultUsrInput)
{
int value1, value2;
switch (ResultUsrInput)
{
case 1:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 + value2 << "]" << '\n';
break;
case 2:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 - value2 << "]" << '\n';
break;
default:
court<<"Default case executed";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在主函数中,您必须使用已用于获取用户输入的变量来发送和绑定用户输入。EX:在主函数中,您通过 switch 语句中的变量 userChoice 和 Binding ResultUsrInput 获取用户输入,该语句为空并返回 0 或默认情况。
绑定 userChoice 或通过 ResultUsrInput 获取输入。
检查解决方案:
#include <iostream>
#include <limits>
using namespace std;
void mainMenu();
double ResultUsr(int);
int main()
{
//int userChoice;
int ResultUsrInput;
mainMenu();
cout << "Choice: ";
cin >> ResultUsrInput;
ResultUsr(ResultUsrInput);
return 0;
}
void mainMenu()
{
cout << "Enter your Choice for calculation" << '\n';
cout << "1 for Addition" << '\n';
cout << "2 for Subtraction" << '\n';
}
double ResultUsr (int ResultUsrInput)
{
int value1, value2;
switch (ResultUsrInput)
{
case 1:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 + value2 << "]" << '\n';
break;
case 2:
cout << "Enter Your first Value: "; cin >> value1;
cout << "Enter Your Second Value: "; cin >> value2;
cout << "The result for the Entered values [" << value1 << "] and [" << value2 << "] is equal to [" << value1 - value2 << "]" << '\n';
break;
default:
cout<<"Invalid Input or error in Code";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |