【从零开始入门unity游戏开发之——C#篇09】if-else条件表达式、三元运算符、switch-case的使用

文章目录

  • 一、if条件表达式
    • 1、`if` 语句
      • 基本结构
      • 示例
      • 输出:
    • 2、`else`语句
      • 示例
      • 输出:
    • 3、`else if` 语句
      • 示例
      • 输出:
    • 4、组合逻辑运算符
      • 示例
      • 输出:
    • 5、嵌套 `if` 语句
      • 示例
      • 输出:
      • 总结
  • 二、三元运算符
    • 1、语法:
    • 2、示例:
  • 三、**switch-case 语句**
    • 1、基本语法:
    • 2、示例:
    • 3、break 语句
    • 4、default 子句
    • 5、case 后的值可以是常量、表达式
    • 6、case 贯穿
    • 7、匹配模式(C# 7.0 引入)
    • 9、总结:
  • 专栏推荐
  • 完结

一、if条件表达式

1、if 语句

基本结构

if 语句的基本语法如下:

if (condition)
{
    // 如果条件为真,执行这里的代码
}
  • condition 是一个 布尔表达式,可以是任何能够计算出 truefalse 的表达式。
  • 如果 conditiontrue,则执行大括号 {} 中的代码。如果为 false,则跳过该代码块。

示例

int a = 10;
if (a > 5)
{
    Console.WriteLine("a 大于 5");
}

输出:

a 大于 5

在这个示例中,a > 5 是条件表达式,因为 a 的值是 10,所以条件为 true,程序会执行 Console.WriteLine 语句。

2、else语句

如果你希望在条件为 false 时执行另一段代码,可以使用 else 语句。

if (condition)
{
    // 如果条件为真,执行这里的代码
}
else
{
    // 如果条件为假,执行这里的代码
}

示例

int a = 3;
if (a > 5)
{
    Console.WriteLine("a 大于 5");
}
else
{
    Console.WriteLine("a 小于或等于 5");
}

输出:

a 小于或等于 5

在这个例子中,a > 5false,因此程序执行了 else 中的代码。


3、else if 语句

如果有多个条件需要判断,可以使用 else if 来检查不同的条件。

if (condition1)
{
    // 如果 condition1 为 true,执行这里的代码
}
else if (condition2)
{
    // 如果 condition1 为 false,且 condition2 为 true,执行这里的代码
}
else
{
    // 如果以上条件都为 false,执行这里的代码
}

示例

int a = 7;
if (a > 10)
{
    Console.WriteLine("a 大于 10");
}
else if (a > 5)
{
    Console.WriteLine("a 大于 5 但小于等于 10");
}
else
{
    Console.WriteLine("a 小于或等于 5");
}

输出:

a 大于 5 但小于等于 10

在这个例子中,a 的值是 7,满足第二个条件 a > 5,所以执行了 else if 中的代码。

4、组合逻辑运算符

有时你需要根据多个条件判断,可以使用逻辑运算符(如 && 和 ||)来组合多个条件。

  • && 代表 与,即两个条件都必须为 true
  • || 代表 或,即其中一个条件为 true 即可。

示例

int a = 8;
int b = 4;

if (a > 5 && b < 5)
{
    Console.WriteLine("a 大于 5 且 b 小于 5");
}

if (a > 5 || b < 5)
{
    Console.WriteLine("a 大于 5 或 b 小于 5");
}

输出:

a 大于 5 且 b 小于 5
a 大于 5 或 b 小于 5
  • 第一个条件 a > 5 && b < 5 满足,因为 a 大于 5 且 b 小于 5。
  • 第二个条件 a > 5 || b < 5 也满足,因为 a 大于 5。

5、嵌套 if 语句

有时你需要在一个 if 语句中嵌套另一个 if 语句。C# 允许这样做。

示例

int a = 7;
int b = 3;

if (a > 5)
{
    if (b < 5)
    {
        Console.WriteLine("a 大于 5 且 b 小于 5");
    }
}

输出:

a 大于 5 且 b 小于 5

在这个示例中,首先判断 a > 5,然后如果条件为 true,继续判断 b < 5,最终输出结果。


总结

  • if 语句用于判断条件是否成立,条件为 true 时执行代码块。
  • else 语句用于在条件为 false 时执行其他代码。
  • else if 用于检查多个条件,允许你实现多路选择。
  • 使用逻辑运算符 &&|| 来组合多个条件。
  • 可以嵌套 if 语句,实现更复杂的判断。

希望这些示例能帮助你理解 C# 中的 if 语句!如果有其他问题或想了解更多内容,随时可以问我。


二、三元运算符

三元运算符是 C# 中一种简洁的条件表达式,它由 ?: 组成,能够根据条件选择两个值之一。

1、语法:

result = 条件 ?1 :2;
  • 如果 条件 为 true,result 的值为 值1,否则为 值2

2、示例:

int age = 20;
string result = age >= 18 ? "成年人" : "未成年人";
Console.WriteLine(result);  // 输出 "成年人"

三、switch-case 语句

switch 语句用于对一个表达式的多个值进行判断,通常用于值有限且明确的情况。让顺序执行的代码产生分支。

1、基本语法:

switch (表达式)
{
    case1:
        // 当表达式等于值1时执行的代码
        break;
    case2:
        // 当表达式等于值2时执行的代码
        break;
    default:
        // 如果没有匹配的值时执行的代码
        break;
}

2、示例:

int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("星期一");
        break;
    case 2:
        Console.WriteLine("星期二");
        break;
    case 3:
        Console.WriteLine("星期三");
        break;
    default:
        Console.WriteLine("未知的星期");
        break;
}

3、break 语句

每个 case 后面通常都需要一个 break 语句来终止 switch 语句块。如果没有 break,程序将继续执行下一个 case,即使它的条件不满足,这种行为称为贯穿(fall-through)。在 C# 中,switch-case 不允许自动贯穿,即必须显式地使用 break 来终止每个 case。如果不使用 break,将会导致编译错误。

switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    // 省略 break 会导致编译错误
}

4、default 子句

default 子句是可选的,如果你知道所有可能的情况都已涵盖,你可以省略它。对于某些简单的情况,省略 default 是合理的,但如果有可能会遇到未预见的值,最好加上 default 来确保代码的健壮性。

switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // 省略 default 语句
}

5、case 后的值可以是常量、表达式

case 后面的值可以是常量(如整数、字符、字符串等),也可以是常量表达式,但不能是变量。

switch (num)
{
    case 1 + 1:
        Console.WriteLine("Two");
        break;
    case 3:
        Console.WriteLine("Three");
        break;
    default:
        Console.WriteLine("Unknown");
        break;
}

在这个例子中,case 1 + 1 等价于 case 2。

6、case 贯穿

如果多个 case 语句应该执行相同的代码,可以将它们写在一起,而不需要重复代码。这种情况在 C# 中称为 case 贯穿。

switch (score)
{
    case 90:
    case 91:
    case 92:
        Console.WriteLine("Excellent!");
        break;
    case 75:
        Console.WriteLine("Good!");
        break;
    default:
        Console.WriteLine("Keep trying!");
        break;
}

这里,score 如果是 90、91 或 92,都会输出 “Excellent!”。

7、匹配模式(C# 7.0 引入)

C# 7.0 引入了模式匹配(is 操作符的扩展),它允许你在 switch-case 中使用更复杂的匹配规则,比如类型检查、变量绑定等。

object obj = "Hello, world!";
switch (obj)
{
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    case string s:
        Console.WriteLine($"String: {s}");
        break;
    default:
        Console.WriteLine("Other type");
        break;
}

这个例子展示了如何使用类型匹配来确定 obj 的实际类型。object 是什么可能还不了解,但是没关系,后面会讲的。

9、总结:

  • if-else:用于简单的条件判断。
  • if-else if-else:用于多个条件判断。
  • 三元运算符:用于简洁地进行条件选择。
  • switch-case:用于对某一变量的多个可能值进行条件判断。

专栏推荐

地址
【从零开始入门unity游戏开发之——C#篇】
【从零开始入门unity游戏开发之——unity篇】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架开发】

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/937052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 使用 GitHub Copilot 扩展

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

conda学习

参考: Anaconda 官网教程 https://freelearning.anaconda.cloud/get-started-with-anaconda/18202conda配置虚拟环境/conda环境迁移/python环境迁移 https://blog.csdn.net/qq_43369406/article/details/127140839 环境&#xff1a; macOS 15.2Anaconda Navigator 2.4.2 x.1…

Nginx配置示例教程

最近对Nginx做了一些初步研究&#xff0c;Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发。主要根据工作中各类应用服务部署访问的需求&#xff0c;围绕HTTP服务、负载均衡、正反向代理、子路由、静态资源发布访问等&#xff0c;以及结合minio管理的图片文件资…

git使用教程(超详细)-透彻理解git

一.核心基础 核心概念有六个 首先请把与svn有关的一切概念暂时从你的脑海中移除掉&#xff0c;我们要重新认识本文所讲述的所有概念。 1.worktree worktree是一个目录&#xff0c;你在这里对文件进行增加、删除、修改。也就是我们常说的工作区。在git中worktree必须要与一个…

Django结合websocket实现分组的多人聊天

其他地方和上一篇大致相同&#xff0c;上一篇地址点击进入, 改动点1&#xff1a;在setting.py中最后再添加如下配置&#xff1a; # 多人聊天 CHANNEL_LAYERS {"default":{"BACKEND": "channels.layers.InMemoryChannelLayer"} }因此完整的se…

Keil-MDK开发环境编译后axf自动转换bin格式文件

编译选项添加如下&#xff0c;调用fromelf工具自动完成转换&#xff1a; fromelf --bin -o "$LL.bin" "#L"

如何快速搭建若依管理系统?

1、下载若依管理系统前后端分离版代码至本地&#xff08;当前版本为RuoYi v3.8.8&#xff09;&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供…

【JavaEE】网络(1)

&#x1f435;本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN&#xff0c;局域网是局部组建的一种私有网络&#xff0c;局域网内的主机之间可以进行网络通信&#xff0c;局域网和局域网之间在没有连接的情况不能…

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、复习 1.1 断言&#xff08;3种&#xff09; 1.2 关联&#xff08;3种&#xff09; 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…

Modelscope AgentFabric: 开放可定制的AI智能体构建框架

目录 git clone https://github.com/modelscope/modelscope-agent.git cd modelscope-agent && pip install -r requirements.txt && pip install -r apps/agentfabric/requirements.txtexport PYTHONPATH$PYTHONPATH:/home/ubuntu/users/lilingfei/modelscop…

CSS|08 浮动清除浮动

浮动 需求: 能够实现让多个元素排在同一行&#xff0c;并且给这些元素设置宽度与高度! 让多个元素排在同一行:行内元素的特性 给这些元素设置宽高:块级元素的特性 在标准文档流中的元素只有两种:块级元素和行内元素。如果想让一些元素既要有块级元素的特点也要有行内元素的特…

[Pro Git#3] 远程仓库 | ssh key | .gitignore配置

目录 1. 分布式版本控制系统的概念 2. 实际使用中的“中央服务器” 3. 远程仓库的理解 4. 新建远程仓库 5. 克隆远程仓库 6. 设置SSH Key 实验 一、多用户协作与公钥管理 二、克隆后的本地与远程分支对应 三、向远程仓库推送 四、拉取远程仓库更新 五、配置Git忽略…

【uni-app】App与webview双向实时通信

【uni-app】App与webview双向实时通信 在 Uniapp 中&#xff0c;App 与 里面嵌入的 webview 进行双向的实时通信 vue2 &#xff0c; 模拟器 主要分为两部分 webview 向 app 发送信息 app 向 webview 发送信息 以下是实现方式&#xff0c;用一个例子来说明 &#xff08;文…

微信小程序处理交易投诉管理,支持多小程序

大家好&#xff0c;我是小悟 1、问题背景 玩过微信小程序生态的&#xff0c;或许就有这种感受&#xff0c;如果收到投诉单&#xff0c;不会及时通知到手机端&#xff0c;而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…

AIGC-------AI生成内容如何赋能AR和VR体验?

AI生成内容如何赋能AR和VR体验 引言 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术近年来蓬勃发展&#xff0c;为用户提供了沉浸式的体验。这些技术已经广泛应用于游戏、教育、医疗、建筑等领域。然而&#xff0c;AR和VR体验的质量与内容的丰富…

zotero安装教程(包括茉莉花插件)

zotero安装教程&#xff08;包括茉莉花插件&#xff09; zotero下载(windows)1-安装 Zotero2-安装 Zotero Connector3-安装浏览器插件--jasminum茉莉花功能&#xff1a;插件下载地址&#xff1a;[https://github.com/search?qjasminum&typerepositories](https://github.c…

M|可可西里

title: 可可西里 time: 2024-12-15 周日 rating: 8.5 豆瓣: 8.9 上映时间: “2004” 类型: M剧情犯罪 导演: 陆川 Chuan Lu 主演: 多布杰 Duobujie张垒 Lei Zhang 国家/地区: 中国大陆 片长/分钟: 90分钟 M&#xff5c;可可西里 粗砺的苍凉&#xff0c;沉默的悲壮。…

ArcGIS教程(007):制作中国行政区划图

文章目录 000:数据准备001:利用地理数据制作中国行政区划图000:数据准备 通过网盘分享的文件:ArcGIS教程(007):中国行政区划图教程练习数据.zip 链接: https://pan.baidu.com/s/1nMiRYD-dbv2S0DoeQzR87g?pwd=3535 提取码: 3535001:利用地理数据制作中国行政区划图 ne_…

KeepAlive与RouterView缓存

参考 vue动态组件&#xff1c;Component&#xff1e;与&#xff1c;KeepAlive&#xff1e; KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…