【C# 基础精讲】条件语句:if、else、switch

在这里插入图片描述

条件语句是C#编程中用于根据条件执行不同代码块的关键结构。C#支持ifelseswitch三种常见的条件语句,它们允许根据表达式的结果决定程序的执行路径。在本文中,我们将详细介绍这三种条件语句的语法和使用方法。

请添加图片描述

if语句

if语句用于在给定条件为真(true)时执行特定的代码块。它的一般语法如下:

if (condition)
{// 当条件为真时执行的代码块
}

condition是一个返回布尔值(truefalse)的表达式。如果conditiontrue,则执行代码块内的语句;如果为false,则跳过整个if块。

例如,假设我们要根据用户的年龄输出不同的消息:

int age = 25;if (age >= 18)
{Console.WriteLine("您已经成年了!");
}

在这个例子中,当age的值大于等于18时,if块内的语句将被执行,输出"您已经成年了!"。

if-else语句

if-else语句允许在条件为真时执行一个代码块,而在条件为假时执行另一个代码块。它的一般语法如下:

if (condition)
{// 当条件为真时执行的代码块
}
else
{// 当条件为假时执行的代码块
}

如果conditiontrue,则执行if块内的语句;否则,执行else块内的语句。

例如,我们可以根据用户的年龄输出不同的消息:

int age = 15;if (age >= 18)
{Console.WriteLine("您已经成年了!");
}
else
{Console.WriteLine("您还未成年。");
}

在这个例子中,当age的值小于18时,else块内的语句将被执行,输出"您还未成年。"。

嵌套if-else语句

条件语句可以相互嵌套,这样我们可以更复杂地根据多个条件进行选择。例如,假设我们想根据用户的年龄和性别输出不同的消息:

int age = 25;
char gender = 'M';if (age >= 18)
{if (gender == 'M'){Console.WriteLine("您已经成年男性。");}else{Console.WriteLine("您已经成年女性。");}
}
else
{Console.WriteLine("您还未成年。");
}

在这个例子中,我们在外层if块中判断年龄是否大于等于18,如果是,则进一步在内层if块中判断性别。根据年龄和性别的组合,输出不同的消息。

if-else if-else语句

当需要在不同的条件下执行不同的代码块时,程序员通常会使用条件语句来实现这种逻辑。在许多编程语言中,if-else if-else 结构是一种常见的方式,用于根据不同的条件执行不同的代码块。这种结构允许在多个条件中进行选择,仅执行与第一个满足条件相关的代码块。

if-else if-else 结构的一般形式如下:

if (condition1)
{// 当 condition1 为真时执行的代码块
}
else if (condition2)
{// 当 condition1 为假而 condition2 为真时执行的代码块
}
else if (condition3)
{// 当 condition1 和 condition2 都为假而 condition3 为真时执行的代码块
}
// 可以继续添加更多的 else if 条件块
else
{// 当前面所有条件均为假时执行的默认代码块
}

在这种结构中,每个条件(condition1condition2condition3 等等)都是一个返回布尔值的表达式。代码会按顺序检查每个条件,一旦找到第一个为真的条件,将执行对应的代码块,并跳过其他条件。

例如,我们可以根据分数来判断不同分数的等级:

int score = 85;if (score >= 90)
{Console.WriteLine("优秀!");
}
else if (score >= 80)
{Console.WriteLine("良好!");
}
else if (score >= 70)
{Console.WriteLine("中等!");
}
else
{Console.WriteLine("需要努力!");
}

在这个示例中,根据不同的分数范围,会输出不同的评价。如果分数大于等于 90,将输出"优秀!“;如果分数大于等于 80 但小于 90,将输出"良好!”;如果分数大于等于 70 但小于 80,将输出"中等!“;否则,将输出"需要努力!”。

switch语句

switch语句用于根据一个表达式的值,执行与之匹配的代码块。它的一般语法如下:

switch (expression)
{case value1:// 当表达式的值等于value1时执行的代码块break;case value2:// 当表达式的值等于value2时执行的代码块break;// 可以添加更多的casedefault:// 当表达式的值与前面的所有值都不匹配时执行的代码块break;
}

expression是一个可以返回整数值或枚举类型的表达式。case后面的value1value2等是具体的常量值或枚举成员,用于与expression进行比较。

例如,我们可以根据用户输入的数字输出相应的季节:

int seasonNumber = 3;
string seasonName;switch (seasonNumber)
{case 1:seasonName = "春季";break;case 2:seasonName = "夏季";break;case 3:seasonName = "秋季";break;case 4:seasonName = "冬季";break;default:seasonName = "未知季节";break;
}Console.WriteLine("当前季节是:" + seasonName);

在这个例子中,根据用户输入的seasonNumber的值,将对应的季节名赋给seasonName变量,并输出结果。

总结

条件语句是C#编程中非常重要的控制结构,它们允许根据条件决定程序的执行路径。ifelseswitch是最常见的条件语句,在不同情况下,可以根据具体需求选择合适的条件语句来实现逻辑判断和程序控制。通过灵活使用条件语句,开发者可以编写出更加功能完善和具有逻辑性的C#程序。希望本文对您理解C#中的条件语句有所帮助,祝您在C#编程的学习过程中取得更多进展!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux Shell 编程入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天…

嵌入式虚拟仿真实验教学平台之串口发送数据

嵌入式虚拟仿真实验教学平台课程系列 串口发送数据实验 课程内容 本实验使用 STM32 的串口发送数据。开始仿真后,打开串口监视器,串口监视器会打印出要发送的数据。 课程目标 学习配置使用GPIO功能学习配置使用复用功能学习配置使用UART功能 硬件设计 本课程…

微信小程序如何配置并使用less?

1,检查微信开发者工具(工具版本1.03)————这步很重要不然后面按步骤实行后会发现急死你也还是不管用,我之前死在过这一步,所以大家不要再次踩坑了 ~ ~ 。。。 2,在VScode中下载Less插件 3,…

uni-app:分页实现多选功能

效果 代码解析 一、标签-列表 <view class"item_all" v-for"(item, index) in info" :key"index"><view class"position parameter-info text-over" :class"{checked_parameter: item.checked}" :data-id"i…

代码随想录算法训练营day59

文章目录 Day59 下一个更大元素II题目思路代码 接雨水题目思路代码 Day59 下一个更大元素II 503. 下一个更大元素 II - 力扣&#xff08;LeetCode&#xff09; 题目 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每…

ChatGPT“侵入”校园,教学评价体制受冲击,需作出调整

北密歇根大学的教授奥曼在学生作业中发现了一篇关于世界宗教的“完美论文”。“这篇文章写得比大多数学生都要好......好到不符合我对学生的预期&#xff01;”他去问ChatGPT&#xff1a;“这是你写的吗&#xff1f;”ChatGPT回答&#xff1a;“99.9%的概率是的。” ChatGPT“侵…

【Axure 教程】动态面板

【动态面板】是 Axure 中另外一个神级的元件&#xff0c;它的江湖地位可以说跟【中继器】不相上下&#xff0c;【动态面板】提供了简单的配置&#xff0c;却可以实现非常丰富的效果&#xff0c;在实际设计中应用非常广泛。 对于刚入门的产品经理来说&#xff0c;学习【动态面板…

Bootload U-Boot分析

Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射表&#xff0c;从而建立适当的系统软硬件环境&#xff0c;为最终调用操作系统内核做好准备。 对于嵌入式系统&#xff0c;Bootloader是基于特定硬件平台来实现的。因此…

C++11之右值引用

C11之右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的 右值引用&#xff08;rvalue reference&#xff09;语法特性&#xff0c;所以从现在开始我们之前学习的引用就叫做左值引用&#xff08;lvalue reference&#xff09;。无论左值引用还是右值引用&#…

面试热题(滑动窗口最大值)

给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出&#xff1a;[3,3,5,…

objectMapper.getTypeFactory().constructParametricType 方法的作用和使用

在使用 Jackson 库进行 JSON 数据的序列化和反序列化时&#xff0c;经常会使用到 ObjectMapper 类。其中&#xff0c;objectMapper.getTypeFactory().constructParametricType 方法用于构造泛型类型。 具体作用和使用如下&#xff1a; 作用&#xff1a; 构造泛型类型&#x…

CentOS下ZLMediaKit的可视化管理网站MediaServerUI使用

一、简介 按照 ZLMediaKit快速开始 编译运行ZLMediaKit成功后&#xff0c;我们可以运行其合作开源项目MediaServerUI&#xff0c;来对ZLMediaKit进行可视化管理。通过MediaServerUI&#xff0c;我们可以实现在浏览器查看ZLMediaKit的延迟率、负载率、正在进行的推拉流、服务器…

并发——线程与进程的关系,区别及优缺点?

文章目录 1. 图解进程和线程的关系2.程序计数器为什么是私有的?3. 虚拟机栈和本地方法栈为什么是私有的?4. 一句话简单了解堆和方法区5. 说说并发与并行的区别? 从 JVM 角度说进程和线程之间的关系 1. 图解进程和线程的关系 下图是 Java 内存区域&#xff0c;通过下图我们…

vue-cli

vue-cli脚手架 案例一&#xff1a; 案例二&#xff1a; 案例三&#xff1a; ​ 一、脚手架简介 Vue脚手架是Vue官方提供的标准化开发工具&#xff08;开发平台&#xff09;&#xff0c;它提供命令行和UI界面&#xff0c;方便创建vue工程、配置第三方依赖、编译vue工程 1. …

Llama 2 云端部署与API调用【AWS SageMaker】

Meta 刚刚发布了 Llama 2 大模型。如果你和我们一样&#xff0c;你一定会迫不及待地想要亲自动手并用它来构建。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。 然后你的开发人员可以轻松地将…

Vue3 第二节 Vue3的响应式

1.Vue3的响应式原理 2.ref函数和reactive函数的对比 3.setup注意点 一.Vue3的响应式原理 1.Vue2.x中的响应式原理 ① 实现原理 对象类型&#xff1a;通过Object.defineProperty() 对属性的读取&#xff0c;修改进行拦截&#xff08;数据劫持&#xff09;数组类型&#xf…

zookeeper集群和kafka的相关概念就部署

目录 一、Zookeeper概述 1、Zookeeper 定义 2、Zookeeper 工作机制 3、Zookeeper 特点 4、Zookeeper 数据结构 5、Zookeeper 应用场景 &#xff08;1&#xff09;统一命名服务 &#xff08;2&#xff09;统一配置管理 &#xff08;3&#xff09;统一集群管理 &#xff08;4&a…

Vue缓存字典值减少网络请求次数,解决同样参数并发请求多次

前言 在一些项目里&#xff0c;我们可能有着大量的下拉框&#xff0c;而这些下拉框的数据就来源于我们后端接口返回的字典信息。于是&#xff0c;画风可能是这样的&#xff0c;每次下拉&#xff0c;你都需要请求一次字典接口拿到这些数据&#xff0c;于是每次组件刷新都会重复…

C# PaddleDetection 版面分析

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Extensions; using Sdcb.PaddleDetection; using Sdcb.PaddleInference; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin…

目前Java后端就业前景怎么样?

前言 并不乐观&#xff0c;看看现在的就业形式就知道了&#xff0c;基本上是僧多粥少的情况&#xff0c;你可能会看到很多编程语言排行榜或者流行榜中Java的排名很高&#xff0c;如同下面这种&#xff1a; 看排名确实可以粗略的得知语言当下的流行度、使用率&#xff0c;但是它…