C++ 使程序从头开始的循环

C++ 使程序从头开始的循环,c++,C++,如果程序转到开关中的默认值,我必须让它从头开始 我不知道该怎么办 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 z

如果程序转到开关中的默认值,我必须让它从头开始

我不知道该怎么办

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";
}
开关(eingabe)
{
案例“g”:
案例“G”:
cout-gzahl1;
cout-gzahl2;

请尝试以下方法:

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;
    }
}
bool continueCase=true;
while(continueCase)
{
开关(eingabe)
{
案例“g”:
案例“G”:
cout-gzahl1;
cout-gzahl2;

cout正如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 } 
//程序开始{
bool correct_input=false;
而(!正确的输入)
{
//开关前的代码
开关(eingabe)
{
案例“g”:
案例“G”:
cout-gzahl1;
cout-gzahl2;

cout您可以像这样使用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( ;;)
{
    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;
}
循环:
开关(eingabe)
{
案例“g”:
案例“G”:
cout-gzahl1;
cout-gzahl2;

cout我正在使用do-while循环(请参阅)不断请求用户输入。当用户输入x时,程序终止。当用户输入g、g、f或f时,这些字母的切换格将被执行。当用户输入其他内容时,将执行默认格。重复请求的重要行如下

do {

它们组成了do-while循环

#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 eingabe\nBitte g, f, G  oder F eingeben! Zum Beenden des Programms x eingeben.\n";
                break;
        }
    } while (eingabe != 'x');
    return 0;
}
#包括
使用名称空间std;
int main(){
查·艾因加贝;
cout>eingabe;
开关(eingabe){
案例“g”:
案例“G”:
int-gzahl1;
int-gzahl2;
cout-gzahl1;
cout-gzahl2;
coutApproach#1

#包括
使用名称空间std;
int main(){
查·艾因加贝;
bool isExecuted=false;
cout>eingabe;
开关(eingabe)
{
案例“g”:
案例“G”:
int-gzahl1;
int-gzahl2;
cout-gzahl1;
cout-gzahl2;

当(someBoolVariable){…}
switch/case
分支内适当循环并设置
someBoolVariable
。开始是指
switch
语句开始吗?是的,很抱歉没有澄清当用户给出g时,它将是无限循环。但用户只希望执行一次
#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 eingabe\nBitte g, f, G  oder F eingeben! Zum Beenden des Programms x eingeben.\n";
                break;
        }
    } while (eingabe != 'x');
    return 0;
}
#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 eingabe\nBitte g, f, G  oder F eingeben! Zum Beenden des Programms x eingeben.\n";
                isExecuted = false;
                break;
        }
    } while ( false == isExecuted);
    return 0;
}
#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 eingabe\nBitte g, f, G  oder F eingeben! Zum Beenden des Programms x eingeben.\n";
            break;
    }
return execStatus;
}