转移语句
goto语句
goto语句:可以是程序跳转到函数内部任意一条可执行语句处。
goto 标识符;
goto关键字后带一个标识符,该标识符是函数内部某条语句的标号。标号可出现在任何可执行语句处。
跳转的方向可向前,也可以向后;可以跳出一个循环,也可以跳入一个循环
int main()
{
int step;
int select;
for (step = 1; step < 10; step++)
{
printf("步骤号:%d\n", step);
do
{
printf("请输入选择一个序号:\n");
printf("(0是退出,99是下一步)\n");
scanf("%d", &select);
if (select == 0)
{
goto exit;
}
} while (select != 99);
}
exit:
printf("退出程序!\n");
return 0;
}
(1)程序运行,外层for循环,输出步骤为1,输入数字,0表示退出,99表示下一步;
(2)do...while语句判断输入,条件为真,则句需执行do...while循环,条件为假,循环结束并执行for循环的下一步。
(3)如果输入为0,则执行if语句,执行其中goto语句进行跳转,其中exit为标识符。循环外部使用“exit:”表示goto跳转位置,输出“退出程序”。
break语句
break语句:用于提前终止循环并跳出当前循环,然后继续执行下面的语句。
break;
再循环控制(1/3)循环控制(1/3)-CSDN博客中我们提到如果将if语句变为while语句,会将我们的程序一直输出下去,我们该如何停止呢?
int main()
{
while (1)
{
printf("haha\n");
goto exit;
}
exit:
printf("不嘻嘻");
return 0;
}
除了利用上面的goto语句跳出循环,还可以利用break语句。
int main()
{
while (1)
{
printf("haha\n");
break;
}
return 0;
}
break语句不能用于除循环语句和switch语句之外的任何其他语句中。
循环体中的break语句和switch...case分支结构中的break语句是不同的。
区别:
switch语句中,break的作用是跳出switch语句。
循环体中,break的作用是终止并跳出当前循环。
continue语句
continue语句:结束本次循环,返回到循环头部继续执行,并不跳出循环。
continue;
break语句和continue语句的区别:
break语句,结束整个循环过程,不在判断执行循环条件是否成立;
continue语句,结束本次循环,而不终止整个循环的执行。
int main()
{
int count;
for (count = 1; count < 10; count++)
{
if (count == 5)
{
printf("在这里休息一下\n");
break; //跳出循环
}
printf("这个数是:%d\n", count);
}
return 0;
}
int main()
{
int count;
for (count = 1; count < 10; count++)
{
if (count == 5)
{
printf("在这里休息一下\n");
continue; //跳出本次循环
}
printf("这个数是:%d\n", count);
}
return 0;
}
总结:
1. goto语句:可以是程序跳转到函数内部任意一条可执行语句处。
2.break语句:用于提前终止循环并跳出当前循环,然后继续执行下面的语句。
3. continue语句:结束本次循环,返回到循环头部继续执行,并不跳出循环。