Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我的程序持续运行而不停止?_C++ - Fatal编程技术网

C++ 为什么我的程序持续运行而不停止?

C++ 为什么我的程序持续运行而不停止?,c++,C++,我正在尝试制作一个模板,这是我的课堂作业。 我在do while循环中使用了switch语句,条件是如果enter变量不等于16,则应终止程序 我已经在任何情况下使用过break Station,但它不起作用 #include <iostream> using namespace std; int main() { int op; cout << "Please enter choice between 1 to 15 For Different O

我正在尝试制作一个模板,这是我的课堂作业。 我在do while循环中使用了switch语句,条件是如果enter变量不等于16,则应终止程序

我已经在任何情况下使用过break Station,但它不起作用

#include <iostream>

using namespace std;

int main()
{
    int op;

    cout << "Please enter choice between 1 to 15 For Different Operations "
         << endl;

    cout << "1. Create List(create a new list(presumably empty))" << endl;
    cout << "2. Insertion" << endl;
    cout << "3. Deletion" << endl;
    cout << "4. Update(replace the element)" << endl;
    cout << "5. Start" << endl;
    cout << "6. Next" << endl;
    cout << "7. Back" << endl;
    cout << "8. Tail" << endl;
    cout << "9. Find" << endl;
    cout << "10. Copy" << endl;
    cout << "11. Get(display current index and element)" << endl;
    cout << "12. Size / length" << endl;
    cout << "13. Display list" << endl;
    cout << "14. De - allocate list" << endl;
    cout << "15. Exit" << endl;

    cin >> op;
    do {
        switch (op) {
        case 1:
            cout << "Creating the List" << endl;
            break;
        case 2:
            cout << "inserting... " << endl;
            break;
        case 3:
            cout << "Deleting... " << endl;
            break;
        case 4:
            cout << "updating... " << endl;
            break;
        case 5:
            cout << "starting... " << endl;
            break;
        case 6:
            cout << "next... " << endl;
            break;
        case 7:
            cout << "back... " << endl;
            break;
        case 8:
            cout << "Tail... " << endl;
            break;
        case 9:
            cout << "Find... " << endl;
            break;
        case 10:
            cout << "Copying... " << endl;
            break;
        case 11:
            cout << "Getting... " << endl;
            break;
        case 12:
            cout << "Size... " << endl;
            break;
        case 13:
            cout << "Display... " << endl;
            break;
        case 14:
            cout << "Deallocate... " << endl;
            break;
        case 15:
            terminate;
            break;
        default:
            cout << "Please enter the correct choice " << endl;
            break;
        }
    } while (op != 16);
    return 0;
}
#包括
使用名称空间std;
int main()
{
int op;

无法从原始代码中执行

   cin >> op;
   do {
     switch (op)
因此,您在循环外部读取cin,并且不再读取,重新排序以便在每次循环过程中读取,将再次询问您所需的操作

   do {
     cin >> op;
     switch (op)
另外请注意,break不会中断循环,它只是从开关中断。没有中断,下一个案例的指令也将在开关中执行

如果您想在某些情况下从循环中断,您需要在switch语句之外添加一个中断,您可以使用一个变量来“记住”是否应该离开循环

但是,既然在键入的指令中有退出条件,为什么不使循环退出呢

} while (op != 15);
这似乎是有道理的,因为

cout << "15. Exit" << endl;

案例
15
中是否有一条语句
terminate
。该语句没有任何作用。您可能希望它是
terminate()
。对于
默认值
情况,
中断
退出
开关
,而不是循环。如何退出循环?根据当前形式的代码,输入值
16
(并在循环中读取,而不是在循环之前-否则输入值
4
将导致代码永远循环)。这是导致循环退出的条件(执行开关后)。如果您想强制程序退出,只需在循环中的某个位置分配
op=16
。让我试试。如果您这样做了,并且它按预期工作,您介意接受答案吗?如果不介意,是什么错?我不知道如何做,我是新来的接受答案单击问题分数附近的上/下按钮下面的复选框(就在它前面)