循环,使程序从头开始
loop for making program start from the beginning
>如果程序转到开关中的默认值,则必须使程序
从头开始我不知道该尝试什么
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 }
是的,您可以在default switch
中使用goto
来使您的生活"更轻松",但强烈建议不要这样做,因为它会导致意大利面条代码。所以是的,使用 while
,或者也可能do while
。
请尝试以下方法:
bool continueCase = true;
while (continueCase)
{
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;
continueCase = false;
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;
continueCase = false;
break;
default: cout << "ungueltige eingabe";
continueCase = true;
}
}
方法 #1
#include <iostream>
using namespace std;
int main() {
char eingabe;
bool isExecuted = false;
cout << "Bitte geben sie g, G, f oder F ein!n";
do {
cin >> eingabe;
switch (eingabe)
{
case 'g':
case 'G':
int gzahl1;
int gzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
isExecuted = true;
break;
case 'f':
case 'F':
float fzahl1;
float fzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
isExecuted = true;
break;
default:
cout << "ungueltige eingabenBitte g, f, G oder F eingeben! Zum Beenden des Programms x eingeben.n";
isExecuted = false;
break;
}
} while ( false == isExecuted);
return 0;
}
方法#2
#include <iostream>
using namespace std;
int main()
{
char eingabe;
bool isExecuted = false;
do
{
cin >> eingabe;
isExecuted = processEvent(eingabe);
}while(isExecuted == false);
return 0;
}
bool processEvent(char eingabe)
{
bool execStatus = false;
cout << "Bitte geben sie g, G, f oder F ein!n";
switch (eingabe)
{
case 'g':
case 'G':
int gzahl1;
int gzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
execStatus = true;
break;
case 'f':
case 'F':
float fzahl1;
float fzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
execStatus = true;
break;
default:
cout << "ungueltige eingabenBitte g, f, G oder F eingeben! Zum Beenden des Programms x eingeben.n";
break;
}
return execStatus;
}
你可以像这样使用 goto 语句
loop:
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";
goto loop;
}
或者你可以像这样使用 for 循环
for( ;;)
{
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";
continue;
}
break;
}
我正在使用一个 do-while 循环(见 http://www.cplusplus.com/doc/tutorial/control/(来不断询问用户输入。当用户输入 x 时,程序终止。当用户输入 g、G、f 或 F 时,将执行这些字母的切换大小写。当用户输入其他内容时,将执行默认大小写。重复提问的重要台词如下。
do {
和
} while (eingabe != 'x');
他们组成了做而循环。
#include <iostream>
using namespace std;
int main() {
char eingabe;
cout << "Bitte geben sie g, G, f oder F ein!n";
do {
cin >> eingabe;
switch (eingabe){
case 'g':
case 'G':
int gzahl1;
int gzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
break;
case 'f':
case 'F':
float fzahl1;
float fzahl2;
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;
cout << "Bitte g, f, G oder F eingeben!nZum Beenden des Programms x eingeben.n";
break;
default:
cout << "ungueltige eingabenBitte g, f, G oder F eingeben! Zum Beenden des Programms x eingeben.n";
break;
}
} while (eingabe != 'x');
return 0;
}
相关文章:
- 如何从头开始创建 avi 文件?
- 使 std::fstream 写入文件末尾,但从头开始读取
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 如何使用 picojson.h 在 c++ 中从头开始创建 json 对象
- 尝试从头开始实现Leetcode的FizzBuzz多线程问题。收到"libc++abi.dylib: terminating"错误
- 从头开始为应用程序创建 docker 映像是否有意义?
- 如何创建一个循环,该循环检查每次迭代并在每次迭代后从头开始
- 如何在C++中从头开始反序列化文件(没有库)
- 从头开始为使用Qt的应用程序制作简约的构建文件
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 循环,使程序从头开始
- C++开始程序
- Bison-3.0.4 中的 Linux 从头开始错误 'make check'
- 从头开始为多目录项目制作 Cmake
- 链表:从头开始插入
- 从头开始创建C 背景Win32应用程序
- QPlainTextEdit-搜索文档到底,然后从头开始
- ArUco程序从头开始
- 从头开始在程序集中编写 for 循环
- 从头开始创建一个c++ win32程序