C语言 转移语句:goto语句,break语句和continue语句

转移语句:goto语句,break语句和continue 语句

Ⅰ :转移语句介绍

               C语言中的转移语句包括goto 语句,break 语句和continue语句,当程序有时出现某种情况,需要提早结束或转移执行其他指定语句时,就需要使用转移语句,转移语句可以使程序的流程按照这三种转移语句的使用方式转移。

Ⅱ:转移语句详细介绍

    1)goto 语句

         goto语句为无条件转向语句,它可以使程序立即跳转到函数内部的任意一条可执语句。goto 关键字后面带一个标识符,该标识符是同一个函数内某条语句的标号,标号可以出现在任何可执行语句的前面,并以一个“:”作为后缀。一般形式为:
         goto 标识符;
        
         goto 后面的标识符就是要跳转的目标,当然,这个标识符要在程序的其他地方给出,同时这个标识符要在程序内部。例如:
         
         goto show;
         printf("Hello word\n");
         show:
                 printf(‘Hello Tom and Jerry\n“);

        上边的代码段中,goto后的 show 为跳转的标识符,其后的”show :“ 表示goto 语句要跳转的位置。这样在上面的语句执行时,会跳过printf("Hello word\n");而直接执行
        show: 后面的语句  printf(‘Hello Tom and Jerry\n“);

       goto 语句举例:

使用goto语句跳出循环:       

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int main()

{

    int select;                          //定义变量,表示菜单的选项

   

 

    printf("-------MENU--------\n");

    printf("1-----Sell--------\n");

    printf("2-----Buy----------\n");

    printf("3-----Show product-\n");

    printf("4-----Out----------\n");

    for (;;)                           

    {

 

        printf("Please input your select :\n"); //提示用户输入选择

        scanf("%d", &select);            //输入选择

        while (select)

        {

 

            if (select == 1)

            {

                printf("You are selling something into store\n");break;

            }

            if (select == 2)

            {

                printf("You are buying to consumer\n");break;

            }

 

            if (select == 3)

            {

                printf("Checking the store\n");break;

            }

            if (select == 4)

            {

                goto exit;                      //执行goto跳转语句

            }

 

        exit:

            {

                printf("Exit the program\n");   //跳转语句执行位置

                exit(0);

            }

        }

    }

    return 0;

}

 程序运行时,根据输入的选择,输出对应的信息,当输入4时,执行执行goto跳转语句,退出执行过程。C语言 转移语句:goto语句,break语句和continue语句


    2)break 语句

              有时会遇到这样的情况,不顾表达式检验的结果而强行终止循环,这时可以使用break  语句,break 语句用于终止并跳出循环。
               break 语句的一般形式为:  break;
              
               例如:
                while (1)
                {
                      printf("Break\n");
                      break;
                 }
               在上面的程序段中,虽然while 语句是一个永远为真的循环,但是再其中使用break 会使程序流程跳出循环。

    注:这个break 语句和 switch()语句中break 语句是不同的。switch() 语句中的break 用的比较多,大家都比较熟悉,这里就不再说明了。
           
           break 语句举例

    使用break 语句跳出循环:
        

#include<stdio.h>

 

int main(void)

{

    int count;                 //循环控制变量

    for (count = 1; count < 100; count++)

    {

        if (count % 3 == 0 && count % 5 == 0)         //判断条件,如果count=6则终止循环

        {

            printf("Break here\n");

            break;

        }

        printf("the count is %d\n", count);            

    }

    return 0;

}


定义一个count 从1 开始累加,当遇到第一个既可以被3整除,又可以被5整除的数时,执行printf("Break here\n"); 语句终止循环。

C语言 转移语句:goto语句,break语句和continue语句

         3)continue 语句


          在某些情况下,程序需要终止本次循环,执行下一次循环,而不是跳出循环,此时需要用到continue。continue语句的一般形式为:   continue;
          其作用是结束本次循环,即跳过循环体中下面尚未执行的部分,接着执行下一次的循环操作。

           continue 语句举例:

#include<stdio.h>

 

int main(void)

{

    int count;                 //循环控制变量

    int n=0;                   //记录次数

    printf("100以内不能被3或5整除的数为:\n");

    for (count = 1; count < 100; count++)

    {

        if (count % 3 == 0 || count % 5 == 0)         //判断条件,如果满足则结束本次循环,进行下一次循环

        {

            continue;

           

        }

       

        printf("%5d", count);

        n++;

        if (n % 5 == 0)                                //5个一换行

        {

            printf("\n");

        }

       

    }

    return 0;

}

C语言 转移语句:goto语句,break语句和continue语句


      本程序打印100以内既不能被3整除又不能被5整除的数,使用continue 语句,当遇到可以背3整除或可以被5整除的数时,则跳出本次循环,剔除该数,但并不终止循环,而是进入下一次循环。

  Ⅲ:小结

           goto 语句为无条件转向语句,当遇到goto 语句后面定义的标识符时,则直接执行标识符后面的语句块。continue语句和break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环的执行,break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。