C语言中提供了可以随意滥用的goto语句和标记跳转的标号。
事实上goto语句是没有必要的,实践中没有goto语句依旧可以
但某些场合下还是用得到 例子如终止程序在某些深层嵌套的结构的处理过程,例如跳出多层循环
这种情况下break是很难实现
for(...)
{
for(...)
{
for(...)
{
if(disaster)
{
goto error;
}
}
}
}
...
error:
if(disaster)
{
// 处理错误情况
}
下面是goto语句的例子
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char input[10]={0};
system("shutdown -s -t 60");
begin:
printf("电脑将在60s后关机,请输入“zwf”来取消关机!!!请输入>:\n");
scanf("%s",&input);
if(strcmp(input,"zwf")==0)
{
system("shutdown -a");
}
else
{
goto begin;
}
return 0;
}
strcmp用于比较字符串如果两个字符串相等则返回0反之返回1
system用于执行系统命令
当然不用goto语句也可以!!!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char input[10]={0};
system("shutdown -s -t 60");
while(1)
{
printf("电脑将在60s后关机,请输入“zwf”来取消关机!!!请输入>:\n");
scanf("%s",&input);
if(strcmp(input,"zwf")==0)
{
system("shutdown -a");
}
}
return 0;
}