"break"和"exit"有什么区别?(涉及IT技术)

6

虽然我经常使用break()和exit()语句,但我对它们之间有些困惑。我需要知道它们的确切含义以及何时应该使用它们。请用简单的例子进行解释。


9
break()不是一个函数,它是语言语法的一部分。exit()是一个函数。你学习的书没有涵盖这个吗? - anon
3个回答

20

break 是一个关键字,用于从循环等当前结构中退出。而 exit 是一个不可返回函数,它将控制权返回给操作系统。例如:

// some code (1)
while(true)
{
   ...
   if(something)
     break;
}
// some code (2)
在上面的代码中,break语句退出当前循环,也就是while循环。也就是说,在退出循环后还会执行一些代码(2)。
而exit则完全退出程序:
// some code (1)
while(true)
{
   ...
   if(something)
     exit(0);
}
// some code (2)

如果使用 exit() 命令,程序将会停止运行,即在这种情况下,某些代码(2)将不会被执行。


8

break 是一种控制流语句,它表示下一个要执行的语句是循环结构的末尾语句(或者 switch 结构的末尾语句)。

 while (...) {  /* same for "do {} while" or "for" */ 
   ... 
   break;  -----+    
   ...          |  
 }              |
 ....       <---+  JUMP HERE!



 switch (...) {
   ... 
   break;  -----+    
   ...          |  
 }              |
 ....       <---+  JUMP HERE!

exit()是一个函数,它表示程序必须结束并将控制权交还给操作系统。根据操作系统的不同,在退出时会有许多事情在幕后发生,以清理和释放使用的资源。您也可以使用atexit()函数(在C99中)定义一个在退出之前调用的函数。


2

break用于退出循环。

exit用于退出程序。

#include<stdio.h>
#include<stdlib.h>
main()
{
        int d;
        while(1)
        {
        scanf("%d",&d);
        if(d==1)
        {
                break;
        }
        else if(d==4)
        {
                exit(0);
        }
        }
        printf("WELCOME YOU MATCH BREAK\n");
}

如果您按下1,它将退出循环。而不是程序。因此,在那个时候它将打印该字符串。

如果您按下4,它将退出程序,它不会打印该字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接