Unity的C#编程教程_28_switch语句

2023-10-30

  • switch 其实就是 else if 的替代品
  • 可以让代码更简洁清晰
  • 如果你用了 2 个或者以上的 eles if ,那就考虑下能否改成 switch
  • 比如一个游戏得分评价系统:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Grade : MonoBehaviour
{

    public int score;
    public string show;

    // Start is called before the first frame update
    void Start()
    {
        score = Random.Range(0, 6); // 随机生成分数
    }

    // Update is called once per frame
    void Update()
    {
        if (score == 0) // 0分 差
        {
            show = "Bad";
        }
        else if (score == 1 || score == 2) // 1,2分 中等
        {
            show = "Normal";
        }
        else if (score == 3) // 3分 好
        {
            show = "Good";
        }
        else // 4,5 分为优秀
        {
            show = "Great";
        }


        if (Input.GetKeyDown(KeyCode.Space))
        {
            score = Random.Range(0, 6); // 按下空格键重置分数
        }
    }
}

  • 这里我们用 switch 替代就可以更为清晰
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Grade : MonoBehaviour
{

    public int score;
    public string show; // 这里设置了 public 变量可以直接在 unity 窗口查看结果

    // Start is called before the first frame update
    void Start()
    {
        score = Random.Range(0, 6); // 随机生成分数
    }

    // Update is called once per frame
    void Update()
    {
        /*
        if (score == 0) // 0分 差
        {
            show = "Bad";
        }
        else if (score == 1 || score == 2) // 1,2分 中等
        {
            show = "Normal";
        }
        else if (score == 3) // 3分 好
        {
            show = "Good";
        }
        else // 4,5 分为优秀
        {
            show = "Great";
        }
        */

        
        switch (score)
        {
            case 0:
                show = "Bad";
                break;

            case 1:

            case 2:
                show = "Normal";
                break;

            case 3:
                show = "Good";
                break;

            default:
                show = "Great";
                break;

        }
        

        if (Input.GetKeyDown(KeyCode.Space))
        {
            score = Random.Range(0, 6); // 按下空格键重置分数
        }
    }
}

  • 注意,这里 switch 的 case 仅仅是用于“指定情况”,比如这里的 1,2,3,4 之类,但是如果换成“范围”,比如 2<a<5 就不能用在 switch 里面了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity的C#编程教程_28_switch语句 的相关文章

随机推荐

  • python调用自己写的py文件

    目录 python如何调用自己写的py文件呢 如果是不同目录怎么调用呢 如果需要调用的多个文件在多个目录呢 关于 init py的解释 关于sys path的解释 python如何调用自己写的py文件呢 同一个目录下直接写import xx
  • IP地址网段表示法

    http blog sina com cn s blog 4a1d691b010004qx html 1 IP地址 共分为四类 A B C D类 各类范围详见RFC参考 2 子网掩码 子网掩码的作用是用来表示IP地址中的多少位用来表示主机号
  • 23种设计模式之模板模式

    文章目录 概述 模版模式的优缺点 优点 缺点 模版模式的使用场景 模板模式的结构和实现 模式结构 模式实现 总结 概述 模板模式指 一个抽象类中 有一个主方法 再定义1 n个方法 可以是抽象的 也可以是实际的方法 定义一个类 继承该抽象类
  • 深入学习jquery源码之jQuery的构造函数与实例化

    深入学习jquery源码之jQuery的构造函数与实例化 创建jQuery对象的整个流程如下 1 调用 方法 2 调用jQuery prototype init 构造函数 3 根据选择器不同返回不同的jQuery对象 4 不同jQuery对
  • java web中servlet详解_javaWeb之Servlet详解

    Servlet详解 1 servlet简单介绍 servlet是javaweb三大组件之一 他与filter listener 共同组成了javaweb的三大组件 Servlet Server Applet 是Java Servlet的简称
  • 成员变量和局部变量

    成员变量和局部变量的区别 1 成员变量是独立于方法外的变量 局部变量是类的方法中的变量 成员变量 包括实例变量和类变量 用static修饰的是类变量 不用static修饰的是实例变量 所有类的成员变量可以通过this来引用 2 局部变量 包
  • arthas底层实现原理剖析

    前言 经常在应用的启动或者运行过程中需要动态的查看数据 或者实时的验证我们写的代码的结构与执行过程 此时需要一种工具能够动态的检测程序运行的状态 内存数据 线程情况 最好能够动态的替换代码实时生效 方便我们从日志或者其他埋点断言我们的猜测
  • 机器视觉解决方案 首选诺威特

    机器视觉解决方案 首选诺威特 诺威特简介 诺威特 NOVTEC 成立于2003年 总部位于江苏苏州 是专业从事测试解决方案的高科技企业 为企业和研究机 构提供大量高端的测试仪器设备解决方案 使用人工智能Artificial intellig
  • QT 使用QZXing生成,解析二维码跟条码

    1 下载QZXing库 为什么要下载QZXing库 而不直接使用编译好的库文件 因为每个人使用的编译环境是不一样的 使用的编译器也不尽相同 不同编译器编译出来的库放到不同编译器下则不一定能够使用 至少我是这么理解的 使用别人的也经常出现崩溃
  • 【华为OD机试】告警抑制【2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • vbs中遍历子目录寻找特定文件

    转载 https blog csdn net hywerr article details 70228086 递归函数如下 Function FileExsitInDirectory fso As Object filename As St
  • 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL

    1 首先得安装 Connector ODBC 就是MySQL的ODBC驱动 这个是与应用程序相关的 而不是与操作系统相关的 也就是说 不管你的系统是X64还是X86 只要你的应用程序是X86的那么 Connector ODBC 就要安装X8
  • cordova环境搭建以及打包apk

    1 安装node JS 2 安装ant 载连接 http ant apache org 下载完成之后解压到你想安装的目录 比如D ant 然后将目录添加到系统变量里 步骤如下 右击我的电脑 点击属性 左侧菜单点击高级系统设置 在弹窗中点击环
  • 【发现】国产007里面星爷挖子弹时看的电影~~~~

    Educating Mandy 春潮烂漫海棠红 影片名称 Educating Mandy 春潮烂漫海棠红 主演女优 Traci Lords 翠希 劳艾德 呵呵 今天逛论坛的时候看到了 转载于 https www cnblogs com bo
  • 动物识别专家系统(Java实现已开源)

    动物识别专家系统 产生式系统 问题定义 系统实现 规则 事实和产生式的表示 类的设计 匹配顺序 推理机 结果演示 源代码 产生式系统 规则库 规则库是用于描述相应领域内知识的产生式集合 它是产生式系统求解问题的基础 其中对领域知识表达的完整
  • RabbitMQ之Work Queues

    工作队列 又称任务队列 的主要思想是避免立即执行资源密集型任务 而不得不等待它完成 相反我们安排任务在之后执行 我们把任务封装为消息并将其发送到队列 在后台运行的工作进 程将弹出任务并最终执行作业 当有多个工作线程时 这些工作线程将一起处理
  • 实战案例之瀑布流效果

    前言 从服务器获取需要展示的数据 图片大小不一致 大中 中 小 每次从服务器获取三条数据 依次插入到三列中 每一列的宽度是一样的 弊端 可能导致某一列特别的高 而某一列特别的矮 瀑布流 需求分析 最终期望三列的高度差距应该是不大的才可以 最
  • .net core 集成Redis

    第一步 引用StackExchange Redis 第二步 初始化 private string constr 127 0 0 1 6379 allowadmin true connect ConnectionMultiplexer Con
  • 【图像重建】基于ADMM的tv正则化最小化稀疏实现图像重建附matlab代码

    1 简介 2 部分代码 This simple demo examines if TVAL3 works normally Please try more demos in the Demos directory which would s
  • Unity的C#编程教程_28_switch语句

    switch 其实就是 else if 的替代品 可以让代码更简洁清晰 如果你用了 2 个或者以上的 eles if 那就考虑下能否改成 switch 比如一个游戏得分评价系统 using System Collections using