C语言 while循环退出,无已知方式[已关闭]

lf3rwulv  于 2023-03-07  发布在  其他
关注(0)|答案(1)|浏览(160)

13天前关闭。
Improve this question
我刚问了一个同样的问题,但这个问题是封闭的,也许我违反了规则...或者一团糟。
无论如何,我知道循环退出,如break,while(bool),return,n = 1,n = 0 while(n),我想要另一个方法,而不是上面的方法。
我用while(mode!= 2)解决了这个问题,谢谢大家,回答了我不成熟的问题:)我保证通过基础你的反馈努力学习!
问题结束了。
下面是我的代码结构:)↓

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main() {
    
    int  mode=1;
    while (mode != 2)
    {
        printf("\ninput: "); scanf("%d", &mode);
        switch (mode) 
        {
        case 1: printf("\none"); Sleep(1500); break;
        case 2:
            printf("\nsomething");
            Sleep(1500);
            break;

        default: printf("\nStackOverFlow");  break;
        }
    }
    return 0;
}
f0ofjuux

f0ofjuux1#

使用goto

这将仅退出while循环。

while (true) { 
    ...
    if (some condition) {
        goto CLEANUP;
    }
    ...
}
CLEANUP:
...

exit()程序:

while (true) {
    ...
    if (some condition) {
       exit (EXIT_FAILURE);
       
       /* OR, if in the `main()` function: */
       return EXIT_FAILURE;
    }
    ....
}

abort()程序:

while (true) { 
    ...
    if (some condition) {
        abort ();
    }
    ...
}

除了退出while循环之外,还有其他一些替代方法,包括:

  • raise()函数。
  • quick_exit()函数。
  • _Exit()函数。
  • _exit函数。(注意,这不是C标准中定义的,它是一个POSIX扩展)

相关问题