C语言 · goto语句 · 关机小程序

一、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;
		}
	}

你可能感兴趣的:(C语言,c语言)