循环不工作
loop not working?
调用Back to Main Menu后,它返回到主菜单,但是当输入选项或命令时,该选项不被接受或循环不工作。想知道错在哪里?是要加上额外的电话吗?
#include <iostream>
using namespace std;
char mainMenu(void);
int factorial(int n);
unsigned long long combination(long nK, long nR);
int main(){
char option;
int shape,function,i,j,k,t,n;
long nK, nR;
unsigned long long COM;
while((option=mainMenu())!='0')
{
switch(option)
{
case '1'://Program 1:
cout<< "*Drawing a shapen"
<< "(1-Rectangle, 2-Triangle, 3-Inverted Triangle, 4-Letter 'H', 0-Back to Main Menu)n";
do
{
cout<< "Choose shape >> ";
cin>> shape;
cout<< endl;
switch(shape)
{
case 1: break;
case 2: break;
case 3: break;
case 4: break;
case 0:
//Back to Main Menu
cout<< "Back to main menun"
<< endl;
return mainMenu(); //After here, it does back to Main Menu but command or option is not working
}
}while(shape!=0);
case '2': //Program 2
cout<< "*Choose function of calculatorn"
<< "(1-Factorial, 2-Combination, 0-Back to main menu)n";
do
{
cout<< "Choose function >> ";
cin>> function;
cout<< endl;
switch(function)
{
case 1: break;
case 2: break;
case 0:
cout<< "Back to main menun"
<< endl;
return mainMenu();
}
}while(function!=0);
case '0':
cout<< "Program is terminatingn"
<< endl;
return 0;
default:
cout<< "Wrong input. Please choose one of the above options.n"
<< endl;
return mainMenu();
}
}
}
char mainMenu(void){
char option;
cout<< "##############################n"
<< "Main Menun"
<< "Enter your command!n"
<< "##############################n"
<< endl
<< "1. Program1n"
<< "2. Program2n"
<< "0. Exitn"
<< endl
<< "Command >> ";
cin>> option;
cout<< endl;
return option;
}
我不知道你的问题是什么,但是你的代码缺少2个重要的东西。首先,在每个case
块的末尾需要break
语句,否则程序流将继续到下一个case
语句。
第二,内部菜单永远不会脱离内部while(1)
循环。这是goto
使用的一种可能情况,尽管在实践中最好重构代码,将顶部菜单和内部菜单分成两个函数,并在内部菜单中使用return返回到外部菜单。
如前所述,你的代码遗漏了很多东西。如果您分发整个代码,以及精确的错误消息和line. ,那将是非常棒的。我不知道你的问题是什么,但是你的代码缺少2个重要的东西。首先,您需要在每个case块的末尾使用break语句,否则程序流将继续执行下一个case语句。
第二,内部菜单永远不会逃离内部while(1)循环。这是goto使用的一种可能的情况,尽管在实践中最好重构代码,将顶部菜单和内部菜单分成两个函数,并在内部菜单中使用return返回到外部菜单。
空值没有被忽略?…
…这不是很好的解释吗?
还有,你确定你包含了iostream吗?
#include iostream
也就是说,您没有声明程序中使用的任何变量。
您还在mainMenu()函数的第2行遗漏了一个空格。
还有,请告诉我们你期望发生什么。
相关文章:
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 循环仅对第一行正常工作.其他行不受 for 的影响
- 当输入在带有空格的单行中给出时,cin 如何在 while 循环中工作?
- C++中循环和 C 样式数组的范围工作
- 为什么我的 while 循环对于特定输入中断,而对于其他输入工作正常?
- 为什么循环没有中断,并且 if 条件没有按预期工作?
- 如何使这个 Foor 循环在这个问题中工作?
- 在矩阵逆变器上工作,由于某种原因,我的指数循环不起作用
- 当循环在条件C++之前停止工作时
- C++-循环中的If语句工作不正常
- 如何修复使用execv和forks无法工作的循环
- 如何使用while循环找到GCD?模数运算符是如何工作的
- While循环和if/else语句工作不正常
- 这个代码片段中的while循环是如何工作的
- 我在循环中的循环中遇到问题,无法正常工作
- for 循环中的线程无法正常工作
- 无限而循环不工作C++
- For 循环使用指针遍历数组无法正常工作
- for (x:y) 循环在 C++ 中无法正常工作
- Gnu_radio,工作循环和停止