虽然我经常使用break()和exit()语句,但我对它们之间有些困惑。我需要知道它们的确切含义以及何时应该使用它们。请用简单的例子进行解释。
break
是一个关键字,用于从循环等当前结构中退出。而 exit
是一个不可返回函数,它将控制权返回给操作系统。例如:
// some code (1)
while(true)
{
...
if(something)
break;
}
// some code (2)
在上面的代码中,break语句退出当前循环,也就是while循环。也就是说,在退出循环后还会执行一些代码(2)。// some code (1)
while(true)
{
...
if(something)
exit(0);
}
// some code (2)
如果使用 exit()
命令,程序将会停止运行,即在这种情况下,某些代码(2)将不会被执行。
break
是一种控制流语句,它表示下一个要执行的语句是循环结构的末尾语句(或者 switch
结构的末尾语句)。
while (...) { /* same for "do {} while" or "for" */
...
break; -----+
... |
} |
.... <---+ JUMP HERE!
switch (...) {
...
break; -----+
... |
} |
.... <---+ JUMP HERE!
exit()
是一个函数,它表示程序必须结束并将控制权交还给操作系统。根据操作系统的不同,在退出时会有许多事情在幕后发生,以清理和释放使用的资源。您也可以使用atexit()
函数(在C99中)定义一个在退出之前调用的函数。
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,它将退出程序,它不会打印该字符串。