break: 语句用在switch语句和循环语句中,用来跳出switch语句或提前终止循环,转去执行后续循环语句。不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见

break在switch中的应用

//电梯询问开门
#include<stdio.h>
int main()
{
 int floor;
 printf("Which floor do you want to go:");
 while(1)
 {
  scanf("%d",&floor);
  switch (floor)
  {
  case 1:printf("一层门开\n");break;
  case 2:printf("二层门开\n");break;
  case 3:printf("三层门开\n");break;
  case 4:printf("四层门开\n");break;
  case 5:printf("五层门开\n");break;
  case 6:printf("六层门开\n");break;
  default:printf("该层不存在!!!");
  }
 }
 return 0;
}

break在for循环语句中使用

#include<stdio.h>
int main()
{
 int i=1;
 for(i=0;i<=10;i++)
 {
  if(i%3==0)
  {
   break;//跳转到printf("main end");执行
  }
  printf("if end");
 }
 printf("main end");
 return 0;
}

continue: 作用是结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。

//输出1-100内7的倍数
#include<stdio.h>
int main()
{
 int n=100;
 for(int i=1;i<=100;i++)
 {
  if(i%7!=0)
  {
   continue;
  }
  printf("%-5d",i);
 }
 printf("\n");
 return 0;
}

continue和break的区别
continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。continue 不能在 switch 中使用,除非 switch 在循环体中。此时 continue 表示的也是结束循环体的本次循环,跟 switch 也没有关系。

goto: goto 语句是一种无条件流程跳转语句,通常 goto 语句与 if 语句结合使用,当满足一定条件时,程序流程跳转到指定标号处,接着往下执行。所谓标号语句是用标识符标识的语句,它控制程序从goto语句所在的地方转移到标号语句处,goto语句会导致程序结构混乱,可读性降低,而且它所完成的功能完全可以用算法的三种基本结构实现。一般不倡导使用goto语句,但在多层循环嵌套中,从深的层次跳出时,使用goto语句更方便些。

#include<stdio.h>
void fun()
{
 int a=10;
 if(10==a)
 {
  goto MAIN;//不可调用主函数,只能在本函数中跳转,不能跨函数跳转
 }
 return  ;
}

int main (){
    int x=10
MAIN:
 printf("%d",x);
    return 0;
}//goto从循环里跳到循环外,从当前语句向下面语句跳转

return: 用来终止一个函数并返回其后面跟着的值。return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。语句用于结束函数的执行,返回调用者,如果是主函数,则返回值操作系统(终止程序的执行)。利用一个return语句可以将一个数据返回给调用者。通常,当函数的返回类型为void时,return语句可以省略,如果使用也可以作为函数或程序结束的标志。

int add(int a,int b)
{
 int c=a+b;
 return c;
 for(int i=0;i<a;++i)
 {
  printf("xx");
 }
 return c;
}

exit: 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束。exit(1)表示进程正常退出,返回 1;exit(0)表示进程非正常退出.返回 0.
exit()(或return 0)会调用终止处理程序和用户空间的标准I/O清理程序(如fclose), _exit和_Exit不调用而直接由内核接管进行清理.因此,在main函数中exit(0)等价于return 0。

void fun(int a)
{
 for(int i=1;i<=10;++i)
 {
  if(i%a==0)
  {
   exit(EXIT_SUCCESS);//终止程序
  }
 }
}
int main()
{
 //return 0;//只有主函数调用时,程序才会终止
 //exit(EXIT_SUCCESS);
 int x=5;
 fun(x);
 return 0;
}

return和exit的区别: 在main函数中执行return函数是终止程序的一种方法,另一种方法是调用exit函数,此函数属于<stdlib.h>头文件中,传递给exit函数的实际参数和main函数的返回值具有相同的含义:两者都说明程序终止时的状态,为了表示正常终止,传递0:exit(0)。由于C语言有点模糊,所以使用exit(EXIT_SUCCESS);替代。
作为终止程序的方法,return语句和exit函数在main中是等价的,差异在于:无论哪个函数调用exit函数都会导致程序终止,return语句仅当在main函数中调用才会导致程序的终止。