我遇到了这个程序的问题。我正在尝试使用嵌套的switch语句。
void main()
{
int function_select, log_select, root_select ;
do
{
cout << "Please select the function you would like to use \n 1 : Logarithm \n 2 : Root \n 0 : Quit" << endl;
cin >> function_select;
switch (function_select)// main menu
{
case 1:// log menu
{
cout << "Please select which logarithm function you would like to perform \n 1 : Common Log \n 2 : Natural Log \n 3 : Log Base n \n 0 : Back" << endl;
switch (log_select)
{
case 1://common log
{
}
break;
抱歉,如果它看起来有点乱。我还是C ++的新手。这个程序还有更多,但我知道问题在于本节。当我运行程序时,我得到一个错误,指出变量log_select
正在被使用而没有被初始化,即使我在主程序中初始化它。有什么建议能解决这个问题吗?如果你能解释为什么这不起作用,我会很感激。
答案 0 :(得分:1)
在使用它的switch语句之前,你没有将输入读入log_select。
答案 1 :(得分:1)
您显然不初始化log_select
,并且您也无法读取任何用户输入。
这就是您收到错误的原因:它的值未指定(读取:不存在),并且您对其进行评估的尝试具有未定义的行为(请阅读:不要这样做)。
我猜你忘记了:
cin >> log_select;
要将这些变量初始化为0
,您需要写:
int function_select = 0, log_select = 0, root_select = 0;
...虽然如果你这样做了,那么你就不会有编译错误通知你这个错误!有时无法初始化变量很有用。
答案 2 :(得分:1)
“已初始化”与“已声明”不同。您清楚地声明了该变量,但您没有为其赋值。因此你没有初始化它。