转移语句: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 语句举例:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int
{
int select; //定义变量,表示菜单的选项
"-------MENU--------\n");
"1-----Sell--------\n");
"2-----Buy----------\n");
"3-----Show product-\n");
"4-----Out----------\n");
for
{
"Please input your select :\n"); //提示用户输入选择
"%d", &select); //输入选择
while
{
if
{
"You are selling something into store\n");break;
}
if
{
"You are buying to consumer\n");break;
}
if
{
"Checking the store\n");break;
}
if
{
goto exit; //执行goto跳转语句
}
exit:
{
"Exit the program\n"); //跳转语句执行位置
exit(0);
}
}
}
return
}
程序运行时,根据输入的选择,输出对应的信息,当输入4时,执行执行goto跳转语句,退出执行过程。
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
{
if (count % 3 == 0 && count % 5 == 0) //判断条件,如果count=6则终止循环
{
"Break here\n");
break;
}
"the count is %d\n", count);
}
return
}
定义一个count 从1 开始累加,当遇到第一个既可以被3整除,又可以被5整除的数时,执行printf("Break here\n"); 语句终止循环。
3)continue 语句
在某些情况下,程序需要终止本次循环,执行下一次循环,而不是跳出循环,此时需要用到continue。continue语句的一般形式为: continue;
其作用是结束本次循环,即跳过循环体中下面尚未执行的部分,接着执行下一次的循环操作。
continue 语句举例:
#include<stdio.h>
int main(void)
{
int count; //循环控制变量
int n=0; //记录次数
"100以内不能被3或5整除的数为:\n");
for
{
if (count % 3 == 0 || count % 5 == 0) //判断条件,如果满足则结束本次循环,进行下一次循环
{
continue;
}
"%5d", count);
n++;
if (n % 5 == 0) //5个一换行
{
"\n");
}
}
return
}
本程序打印100以内既不能被3整除又不能被5整除的数,使用continue 语句,当遇到可以背3整除或可以被5整除的数时,则跳出本次循环,剔除该数,但并不终止循环,而是进入下一次循环。
Ⅲ:小结
goto 语句为无条件转向语句,当遇到goto 语句后面定义的标识符时,则直接执行标识符后面的语句块。continue语句和break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环的执行,break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。