goto语句+关机程序

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

作用:1.直接到达目的地;2.终止程序在某些深度嵌套的结构的处理过程(一次跳出两层或多层循环);

直接到达目的地:

举例:

#include<stdio.h>
int main()
{
printf("hello world\n");
goto next;
printf("hello\n");
next:
printf("hi\n");
return 0;
}

goto会直接来到next的后面,输出

goto语句+关机程序_goto

更进一步举例:(关机程序)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char input[20]={};
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,则取消关机\n请输入:");
scanf("%s",input);
if(strcmp(input,"我是猪")==0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}

注意:

strcmp(input,"我是猪")==0

strcmp(...,...)==0是专门用来判断两个字符串是否相等的东西 对应库函数#include<string.h>

system("shutdown -s -t 60");
system("shutdown -a");

system("")表示执行系统命令 对应库函数#include<stdlib.h>

shutdown -s -t 60  -s设置关机 -t设置时间关机 60s关机

shutdown -a  取消关机


等同去掉goto的如下的循环:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char input[20]={};
system("shutdown -s -t 60");
while(1)
{
printf("请注意,你的电脑在1分组内关机,如果输入:我是猪,则取消关机\n请输入:");
scanf("%s",input);
if(strcmp(input,"我是猪")==0)
{
system("shutdown -a");
break;
}
}
return 0;
}

终止程序在某些深度嵌套的结构的处理过程(一次跳出两层或多层循环);

举例:

for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
...
error:
......

则goto可以直接跳出多个for的循环 如果是用break就不能达到一次跳出来的效果

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go