分支与循环(3)

hello,大家好,我们有见面了,今天把C语言的分支与循环讲完,今天就讲一个goto语句,后面还会更新有一些题目给大家做,让大家更好的学会。

goto 语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。
从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。
但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。
多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。

for(...)
    for(...)
   {
    
    
        for(...)
       {
    
    
            if(disaster)
                goto error;
       }
   }
    …
error:
 if(disaster)//处理错误情况
        

上面的代码中就好比我们遇到一个错误,得跳出循环,但是如果用break来跳出循环的话至少要三个break,如果是goto的话,直接跳到error,进行下一步操作。

下面用一个例子使用循环的方式来替代goto 语句。

下面是一个关机程序
只要程序运行起来,电脑就在一分钟内关机,输入:我是猪,就取消关机
在写代码之前,我们先要了解一个东西

这是我们电脑上命令提示符,当我们输入shutdown -s -t 60的时候表示电脑在60秒内自动关机
当我们在输入shutdown -a取消关机
在这里插入图片描述

在上面了解之后,我们开始写我们这个代码

int main()
{
    
    
   system()//这个库函数是用来执行系统命令的
   return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    
    
	char input[20] = {
    
    0};
	system("shutdown - s - t 60");//表示电脑还有60秒就关机
again:
	printf("请注意:你的电脑还有60秒就会关机,输入“我是猪”就取消关机\n");
	scanf("%s", input);
	//判断
	
	if (strcmp(input, "我是猪") == 0)
	{
    
    
		system("shutdown -a");
	}
	else
	{
    
    
		printf("请重新输入\n");
		goto again;
	}
	return 0;
}

上面就是我们的完整代码,上面说过可以用其他代码来代替,现在我们用其他代码来代替

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    
    
	char input[20] = {
    
     0 };
	system("shutdown - s - t 60");//表示电脑还有60秒就关机

	printf("请注意:你的电脑还有60秒就会关机,输入“我是猪”就取消关机\n");
	scanf("%s", input);
	//判断

	while (1)
	{
    
    
		if (strcmp(input, "我是猪") == 0)
		{
    
    
			system("shutdown -a");
			break;
		}
	}
	return 0;
}

这就是用while循环代替

我们用一个简单的代码演示明白goto语句,这样我们的分支和循环也学完,我也后面会更新题目给大家做。谢谢大家,今天的分享就到这。

猜你喜欢

转载自blog.csdn.net/2301_76895050/article/details/131403771