一、goto 语句:
C语言中提供了可以滥用的 goto 语句。
从理论上,goto 语句是可以被代替的,不用 goto 语句也是可以写出代码。
但是在特定情况下,还是有 goto 语句的独特之处,就是能一次性跳出多个嵌套循环。
break 就达不到这个效果,它只能跳出本次(一次)循环。
for(...)
for(...)
{
for(...)
{
if(disaster)
goto error; //跳出多层循环,直接跳到 error 标签的位置
}
}
…
error:
if(disaster)
// 处理错误情况
二、关于 goto 语句的关机小程序:
只要程序运行起来,电脑就在1分钟内关机,如果输入:我是猪,就取消关机!
shutdown -s -t 60:让电脑在60秒内关机。
shutdown -a:取消关机指令。
方式一:用 goto 语句
char input[20] = { 0 };
//系统指令,让60秒后电脑关机
system("shutdown -s -t 60");
again:
printf("计算机将在一分钟后关机,请输入:我是猪 取消关机 \n");
scanf("%s", input);
//判断字符串是否一致
if ((strcmp(input, "我是猪")) == 0) {
//系统指令,让电脑取消关机
system("shutdown -a");
}
else {
goto again;
}
方式二:使用 while( ) 代替
char input[20] = { 0 };
system("shutdown -s -t 60");
while (1) {
printf("电脑要关机了,输入我是猪取消关机~\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0) {
system("shutdown -a");
break;
}
}