【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功能 硬件设计 本课程…

整理出来的精选shiro面试题

1、简要介绍Shiro框架吗? Apache Shiro是Java的安全框架。 使用Shiro,可以轻松地开发足够好的APP应用程序。 这不仅可以用于JavaSE环境,也可以用于JavaEE环境。 Shiro提供了身份验证、许可、加密、会话管理、与Web集成和缓存等功能。 三个核心组件&am…

微信小程序如何配置并使用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…

SSH 认证原理

SSH协议登录服务器&#xff1a; $ ssh userhost 主要有两种登录方式&#xff1a;第一种为密码口令登录&#xff0c;第二种为公钥登录 密码口令登录 通过密码进行登录&#xff0c;主要流程为&#xff1a; 1、客户端连接上服务器之后&#xff0c;服务器把自己的公钥传给客户端…

界面控件DevExpress.Drawing图形库早期增强功能分享

众所周知&#xff0c;DevExpress在v22.2发布周期中引入了全新的DevExpress.Drawing图形库&#xff08;并且已经在随后的小更新中引入了一系列增强功能&#xff09;。 在这篇博文中&#xff0c;我们将总结在DevExpress v23.1中解决的一些问题&#xff0c;以及在EAP构建中为以下…

C++中点云聚类算法的实现与应用探索

第一部分&#xff1a;C中点云聚类算法的实现与应用 在当今的计算机视觉领域&#xff0c;点云数据是一种重要的三维数据类型&#xff0c;它能有效表达三维物体的形状信息。然而&#xff0c;由于点云数据的无序性和稀疏性&#xff0c;对其进行分析与处理的难度较大。本文将介绍如…

Android 13 Hotseat定制化修改——006 hotseat图标禁止移动到Launcher中

目录 一.背景 二.方案 三.具体实践 一.背景 客户定制需要修改让hotseat中的icon不要移动到Launcher中,所以需要进行定制 二.方案 原生的Hotseat与Launcher是可以相互移动的,然后现在的需求是Hotseat中的图标只能在Hotseat中移动,所以需要做下限制 思路:在事件拦截的地…

代码随想录算法训练营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;学习【动态面板…

AndroidStudio学习笔记

AndroidStudio学习笔记/踩坑 webview组件和其他组件起冲突问题解决方法原因 webview组件和其他组件起冲突 问题 webview和NestedScrollView组件一起使用时,会出现webview无法滑动的问题 解决方法 NestedScrollView nestedScrollView getView().findViewById(R.id.mine_scro…

Bootload U-Boot分析

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

C++11之右值引用

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

题目:2293.极大极小游戏

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2293. 极大极小游戏 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 按要求模拟即可。 解题代码&#xff1a; class Solution {public int minMaxGame(int[] nums) {int nnums.length;whi…

BIO 阻塞式IO

BIO 阻塞式IO Java BIO 就是传统的 Java I/O 编程&#xff0c;其相关的类和接口在 java.io。 BIO(BlockingI/O)&#xff1a;同步阻塞&#xff0c;服务器实现模式为一个连接一个线程&#xff0c;即客户端有连接请求时服务器端就需要启动一个线程进行处理&#xff0c;如果这个连…

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

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

【数据分析】pandas 一

目录 一&#xff0c;pandas简介&#xff1a; 二&#xff0c;pandas数据结构Series简介&#xff1a; 2.1 data为ndarray 2.2 data为字典 三&#xff0c;Serise切片操作&#xff1a; 四&#xff0c;Series性质&#xff1a; 4.1 Series类似于numpy,字典 4.2 矢量化操作和标…

Flask进阶:构建RESTful API和数据库交互

在初级教程中&#xff0c;我们已经介绍了如何使用Flask构建基础的Web应用。在本篇中级教程中&#xff0c;我们将学习如何用Flask构建RESTful API&#xff0c;以及如何使用Flask-SQLAlchemy进行数据库操作。 一、构建RESTful API REST&#xff08;Representational State Tran…