分支和循环语句(2)补充goto语句

简介: 分支和循环语句(2)补充goto语句

什么是goto语句呢?

1.C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。

最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
again:
    printf("hehe\n");
    printf("haha\n");
    printf("heiehi\n");
    goto again;
    return 0;
}

运行结果:屏幕上死循环打印hehe haha heihei

2.goto语言真正适合的场景如下:

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

3.使用goto语句写一个关机程序:让电脑在60s内关机,在60s内输入"我是猪"取消关机

//使用命令行关机
//shutdown -s -t 60
//取消关机 
//shutdown -a
#include<stdio.h>
#include<stdlib.h>//system库函数的头文件
#include<string.h>//strcmp库函数的头文件
int main() {
    char arr[20] = { 0 };
    system("shutdown -s -t 60");
again:
    printf("请注意,您的电脑将在1分钟内关机,如果输入:我是猪,就取消关机\n");
    scanf("%s", arr);
    if (strcmp(arr, "我是猪") == 0) {//strcmp用来比较比较两个字符串是否相等,等于的话返回值为0
        system("shutdown -a");
    }
    else {
        goto again;  //输错了但是时间还没到,就返回again就再给一次机会
    }
    return 0;
    }

运行结果:

不用goto语句的写法:

int main() {
    char arr[20] = { 0 };
    system("shutdown -s -t 60");
    while (1) {   //在1分钟内输入错误后反复输入,直到电脑关机
        printf("请注意,您的电脑将在1分钟内关机,如果输入:我是猪,就取消关机\n");
        scanf("%s", arr);
        if (strcmp(arr, "我是猪") == 0) {//strcmp用来比较比较两个字符串是否相等,等于的话返回值为0
            system("shutdown -a");
            break;
        }
    }
    return 0;
}

4.shutdown命令的拓展

shutdown-a   //取消关机
shutdown-s    //关机
shutdown-f   //强行关闭应用程序
shutdown-m\\计算机名     //控制远程计算机
shutdown-i    //显示'远程关机'图形用户界面,但必须是shutdown的第一个参数
shutdown-I    //注销当前用户
shutdown-r    //关机并重启
shutdown-s-t   //时间   设置关机倒计时
shutdown-r-t   //时间   设置重新启动倒计时
shutdown-h     //休眠

总结:

以上是对goto语句的简单使用,但是也足以体现出goto语句的作用了.你学到了吗小伙伴们😜😜

如果对你有帮助的话,希望小伙伴们点个赞和关注一下哦~💗💗💗我也会继续更新学习的内容,感谢友友们的支持!😚

相关文章
|
6月前
|
Go C语言
分支语句与循环语句,详细讲解
分支语句与循环语句,详细讲解
|
编译器 C语言
【C语言】 分支语句(选择结构)-- if语句 -- switch语句
【C语言】 分支语句(选择结构)-- if语句 -- switch语句
|
7月前
|
缓存 编译器 Go
分支语句和循环语句
分支语句和循环语句
72 0
|
编译器 C语言 C++
分支语句和循环语句上
分支语句和循环语句
61 0
分支语句和循环语句上
|
C语言
分支语句和循环语句(1)
分支语句和循环语句(1)
54 0
|
数据安全/隐私保护 C语言
分支语句与循环语句(2)
分支语句与循环语句(2)
61 0
|
编译器
分支语句与循环语句题
分支语句与循环语句题
72 0
|
算法 数据安全/隐私保护
分支语句与循环语句——练习
分支语句与循环语句——练习
53 0
|
缓存 Go 数据安全/隐私保护
分支语句和循环语句下
分支语句和循环语句
77 0
|
数据安全/隐私保护
【分支语句与循环语句】
【分支语句与循环语句】
54 0