C++ break funktioniert nicht?

Halli Hallo,

ich lerne gerade C++ und schreibe ein simples Konsolen Programm.

Wenn ich folgenden Code ausführe und ".close" eingebe und dann "n" eingebe, muss ich "n" ein zweites mal eingeben, um aus der Schleife heraus zukommen.

Weiß irgendwer was ich falsch gemacht habe?

Danke im voraus und schönes Wochenende!
MfG

Dominic

#include <iostream>
#include <string>

int main() {

std::string userinput;
std::string modules[2] = {"standard module","editor module"};

std::cout &lt;&lt; "C++ console program v1.0\ntype '-h' for help" &lt;&lt; std::endl &lt;&lt; std::endl;

while (true) {
    std::cin &gt;&gt; userinput;

    if (userinput == "-h") {

        std::cout &lt;&lt; std::endl &lt;&lt; "-------------------" &lt;&lt; std::endl;&nbsp;
        std::cout &lt;&lt; "type '-h' for help\ntype '.m' to show the activated modules\ntype '.m_list_all' to list all modules\ntype '.close' to close the console" &lt;&lt; std::endl;
        std::cout &lt;&lt; "-------------------" &lt;&lt; std::endl;

    }
    else if (userinput == ".m") {

        std::cout &lt;&lt; "standard module" &lt;&lt; std::endl;

    }
    else if (userinput == ".m_list_all")
    {
        for (int i = 0; i &lt; 2; i++)
            std::cout &lt;&lt; modules[i] &lt;&lt; "\n";
    }
    else if (userinput == ".close")
    {
        std::cout &lt;&lt; "Are you sure to close the console?&nbsp; [y/n]" &lt;&lt; std::endl;
        std::cin &gt;&gt; userinput;

        while (true)
        {
            std::cout &lt;&lt; "Are you sure to close the console?&nbsp; [y/n]" &lt;&lt; std::endl;
            std::cin &gt;&gt; userinput;

            if (userinput == "y")
            {
                return 0;
            }
            else if (userinput == "n")
            {
                break;
                break;
            }
            else
            {
                while (true)
                {
                    std::cout &lt;&lt; "Are you sure to close the console?&nbsp; [y/n]" &lt;&lt; std::endl;
                    std::cin &gt;&gt; userinput;

                    if (userinput == "y")
                    {
                        return 0;
                    }
                    else if (userinput == "n")
                    {
                        break;
                    }
                }
            }
        }

        /*if (userinput == "y") {
            return 0;
        }
        else if (userinput == "n") {
            break;
        }
        else
        {
            while (true) {
                std::cout &lt;&lt; "Are you sure to close the console?&nbsp; [y/n]" &lt;&lt; std::endl;
                std::cin &gt;&gt; userinput;

                if (userinput == "y") {
                    return 0;
                }
                else if (userinput == "n") {
                    break;
                }
            }
        }
        */
    }
    else {
        std::cout &lt;&lt; "----------------------------" &lt;&lt; std::endl;
        std::cout &lt;&lt; "unknown command: '" &lt;&lt; userinput &lt;&lt; "'\ntry '-h' for help" &lt;&lt; std::endl;
        std::cout &lt;&lt; "----------------------------" &lt;&lt; std::endl;
    }

}

}

PC, Computer, Konsolen, Programmieren, Schleifen, Break, CPP, Visual Studio, Loop
2 Antworten

Meistgelesene Fragen zum Thema Break