【练气系列】 C关机游戏

简介: C 语言实现关机小游戏

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。从理论上, goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。
但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

一、🎈示例演示

#include<stdio.h>
int main() {
    int c = 1;
    if (c) {
        goto start;
    }
    printf("1\n");
    printf("1\n");
    printf("1\n");
start:    
    printf("2\n");
    printf("3\n");
}

结果为:
在这里插入图片描述
即直接执行start:后边的内容
最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。
多层循环这种情况使用break是达不到目的的。它只能从内层循环退出到上一层循环。如:

#include<stdio.h>
int main() {
    int i = 0, j = 0, k = 0;
    for (i = 1; i <= 100; i++) {
        for (j = 1; j <= 100; j++) {
            for (k = 1; k <= 100; k++) {
                if (i = 10) {
                    goto error;
                }
            }
        }
    }
    error:
    printf("成功跳出");
}

结果为:
在这里插入图片描述

二、🎈goto语句实现关机程序

向控制台输出
shutdown -s -t 时间  即可设置关机倒计时,
shutdown -a  取消关机
此处设置关机时间倒计时60s,利用goto语句实现:如果输入“我是猪”,则取消关机,输入其他,则利用goto语句重新执行,并提示。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    char input[10] = { 0 };
    system("shutdown -s -t 60");

again:
    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    scanf("%s", input);
    if (0 == strcmp(input, "我是猪"))
    {
        system("shutdown -a");
    }
    else
    {
        goto again;
    }
    return 0;
}
  • 效果如下:

在这里插入图片描述
在这里插入图片描述


总结🎈

本文简单介绍了goto语句的使用,以及如何利用goto语句做一个简单的关机小程序,大家快去试试吧📌
在这里插入图片描述

相关文章
|
存储 网络协议 关系型数据库
计算机之服务器的分类?
计算机之服务器的分类?
|
数据可视化 虚拟化 图形学
Autocad软件2018版本下载安装教程——全版本安装包获取教程
Autocad软件2018版本下载安装教程——全版本安装包获取教程
875 0
JRE的安装及环境变量配置
JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。本文以jre 1.7为例介绍JRE的安装及环境配置,其他版本亦可根据此步骤来安装。
1488 0
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
575 2
|
11月前
|
存储 弹性计算 架构师
老板点赞!技术人如何用架构优化打赢降本增效战?
大家好,我是小米,一个喜欢分享技术的小架构师。通过亲身经历,我将介绍如何通过架构优化帮助公司降本增效。两年前,我加入一家初创公司,面对成本高企的问题,通过弹性伸缩、微服务化和数据治理等手段,成功降低了40%的技术成本,提升了60%的系统响应速度。希望我的经验能给你启发!关注我的微信公众号“软件求生”,获取更多技术干货。
226 5
|
NoSQL 关系型数据库 OLAP
如何选择最合适的数据库,帮助企业及个人业务更好的开展
如何选择最合适的数据库,帮助企业及个人业务更好的开展
|
JavaScript
Vue3基础(21)___在axios.js中使用路由跳转
本文介绍了在Vue 3中如何在axios.js中使用路由跳转,通过直接引入路由实例并使用`router.push`实现页面跳转。
528 0
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
265 0
|
存储 安全 Linux
如何在 CentOS VPS 上配置 vsftpd 使用 SSL/TLS
如何在 CentOS VPS 上配置 vsftpd 使用 SSL/TLS
338 0
|
存储 缓存 测试技术
现代化实时数仓 SelectDB 再次登顶 ClickBench 全球数据库分析性能排行榜!
近日,在 ClickHouse 发起的分析型数据库性能测试排行榜 ClickBench(https://benchmark.clickhouse.com/)中,现代化实时数仓 SelectDB 时隔两年后再次登顶,在全部近百款数据库和数十种机型中,性能表现位居总榜第一!
589 1