如果转到开关中的默认值,我必须使Programm从头开始
我不知道该怎么办
switch(eingabe)
{
case 'g':
case 'G':
cout << "Geben sie bitte die erste zahl ein BITTE GANZZAHLEN" << endl;
cin >> gzahl1;
cout << "geben sie bitte die zweite zahl ein" << endl;
cin >> gzahl2;
cout << "das ergebnis lautet: " << gzahl1 / gzahl2 << endl;
break;
case 'f':
case 'F':
cout << "Geben sie bitte die erste zahl ein" << endl;
cin >> fzahl1;
cout << "geben sie bitte die zweite zahl ein" << endl;
cin >> fzahl2;
cout << "das ergebnis lautet: " << fzahl1 / fzahl2 << endl;
break;
default: cout << "ungueltige eingabe";
}
如果碰巧达到了开关中的默认值,我需要从头开始重新编程。
最佳答案
如lubgr的评论所述,您可以将整个块包装在while
循环中。因此,对于您的情况,这可能会起作用:
//start of program {
bool correct_input = false;
while(!correct_input)
{
//code before the switch
switch(eingabe)
{
case 'g':
case 'G':
cout << "Geben sie bitte die erste zahl ein BITTE GANZZAHLEN" << endl;
cin >> gzahl1;
cout << "geben sie bitte die zweite zahl ein" << endl;
cin >> gzahl2;
cout << "das ergebnis lautet: " << gzahl1 / gzahl2 << endl;
//set correct_input to true
correct_input = true;
break;
case 'f':
case 'F':
cout << "Geben sie bitte die erste zahl ein" << endl;
cin >> fzahl1;
cout << "geben sie bitte die zweite zahl ein" << endl;
cin >> fzahl2;
cout << "das ergebnis lautet: " << fzahl1 / fzahl2 << endl;
//set correct_input to true
correct_input = true;
break;
default:
cout << "ungueltige eingabe";
//next line is optional
correct_input = false;
break;
}
}
//continue if correct input is inserted
//end of program }
是的,您可以在
goto
中使用 default switch
使您的生活“更轻松”,但是如链接中所述,强烈不鼓励这样做,因为这将导致spaghetti code。是的,请使用while
,也可以使用do while
。关于c++ - 使程序从头开始的循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56699953/