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

news2024/12/24 2:34:16

在这里插入图片描述

条件语句是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;
    // 可以添加更多的case
    default:
        // 当表达式的值与前面的所有值都不匹配时执行的代码块
        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.coloradmin.cn/o/847106.html

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

相关文章

有奖活动 | 大咖论道:一同畅聊鸿蒙生态

点击预约直播 活动简介 即日起-2023年9月5日,参与本期活动与大咖一起聊聊鸿蒙新生态,您可以在社区写下对鸿蒙生态的畅想,也可以学习相关课程并获取证书,完成活动任务即可参与精美礼品抽奖。 活动周期 8月1日-9月5日 参与考试 Harm…

逻辑卷扩容

背景 服务器有3个逻辑卷,1个是1T,另外两个是500G,需要将500G的合并扩容为1T 操作 df -Th lsblk -f 查看磁盘大小卸载 /approot umount /approot vim /etc/fstab #注释掉/approot mount -a检查是否卸载完成 vgdisplay -v 找到approot所在…

重磅!官方Android现代开发指南发布!

重磅!官方Android现代开发指南发布! 最近查看了google官方Android开发站点,猛然发现页面做了一些改动,新增了一个专题tab页,增加了一个UI开发指南模块,该模块整合了Jetpack Compose、Jetpack架构组件及Mat…

elementui实现当前页全选+所有全选+翻页保持选中状

原文来自:https://blog.csdn.net/sumimg/article/details/121693305?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121693305-blog-127570059.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm…

使用 Python 和 Flask 构建简单的 Restful API 第 1 部分

一、说明 我将把这个系列分成 3 或 4 篇文章。在本系列的最后,您将了解使用flask构建 restful API 是多么容易。在本文中,我们将设置环境并创建将显示“Hello World”的终结点。 我假设你的电脑上安装了python 2.7和pip。我已经在python 2.7上测试了本文…

2023 华数杯全国大学生数学建模竞赛 ——C题母亲身心健康对婴儿成长的影响 完整建模+代码

目录 完整思路下载链接:这里可以获取2023华数杯全国大学生数学建模竞赛题目C 题母亲身心健康对婴儿成长的影响✅ 问题1问题1建模思路✅ 问题2问题2建模思路✅ 问题3问题3建模思路✅ 问题4问题4建模思路✅ 问题5问题5建模思路提供的数据和资料: 完整思路下…

【我们一起60天准备考研算法面试(大全)-第四十天 40/60】【并查集】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

el-table实现指定列合并

table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素…

ESP 32 蓝牙虚拟键盘链接笔记本电脑的键值问题

由于打算利用esp32 通过蓝牙链接电脑后实现一些特俗的键盘功能,所以就折腾了一下,折腾最耗费时间的却是键值问题,让一个20多年的老司机重新补充了知识 过程曲折就不说了,直接说结果。 我们通过网络搜索获取的键值和蓝牙模拟键盘传…

云专线的应用场景

云专线是连接用户本地数据中心和云上虚拟私有云的高安全、高速度、低延迟、稳定可靠的专属连接通道,主要有以下应用场景。 1、混合云环境:企业在私有云和公有云之间传输数据及部署应用时,使用云专线建立专用的网络连接,保证数据传…

做赴日IT工作 Java Python等语言哪个更好?

很多同学问我,做赴日IT工作Java,Python等语言哪个更好?更容易拿到内定通知书?如果你想去做赴日IT工作,无论是学Java还是Python或是其他编程语言,都是很好的选择,因为它们都有自己的的前景和应用…

如何快速完成MySQL数据的差异对比|NineData

在现代商业环境中,数据库是企业存储核心数据的重要工具,而 MySQL 作为最受欢迎的关系型数据库管理系统,广泛应用于各行各业。在容灾、数据迁移、备份恢复等场景下,为了确保两端或多端之间数据的一致性,通常需要对数据进…

【C++】多态(多态的构成条件,虚函数重写,override,final,覆盖隐藏对比)

文章目录 前言一、多态的定义及实现1.多态的构成条件: 二、虚函数1.虚函数的重写2.虚函数重写的例外(协变)3.析构函数的虚函数(基类与派生类析构函数名字不同)1.不加virtual的一般情况:2.不加virtual会出现…

Merge和Rebase的区别

Merge 和 Rebase 是 Git 中常用的两种分支整合方式,它们具有不同的工作原理和效果: Merge(合并) 合并是将两个或多个分支的提交历史合并为一个新的提交。在合并时,Git 会创建一个新的合并提交,将两个分支…

Android中简单封装Livedata工具类

Android中简单封装Livedata工具类 前言: 之前讲解过livedata和viewmodel的简单使用,也封装过room工具类,本文是对livedata的简单封装和使用,先是封装了一个简单的工具类,然后实现了一个倒计时工具类的封装. 1.LiveD…

让你的商城触达全球市场!了解跨境商城系统源码的优势

全球市场触达的商机 随着全球化趋势的不断发展,跨境电商已经成为企业开拓全球市场的重要途径之一。在扩大国际业务的同时,企业需要面对许多挑战,如语言、支付、物流等问题。这些问题可以通过使用跨境商城系统源码来解决。 一、多语言支持 跨境…

如何做好电信布线?

电信布线作为通信网络骨干,对于任何现代企业或组织来说都是至关重要的组成部分。随着业务量的持续增长,对电信布线安装提出了更高的要求。为此,飞速(FS)提出了FHD电信布线解决方案,在满足了电信机房要求的基…

源码分析——ConcurrentHashMap源码+底层数据结构分析

文章目录 1. ConcurrentHashMap 1.71. 存储结构2. 初始化3. put4. 扩容 rehash5. get 2. ConcurrentHashMap 1.81. 存储结构2. 初始化 initTable3. put4. get 3. 总结 1. ConcurrentHashMap 1.7 1. 存储结构 Java 7 中 ConcurrentHashMap 的存储结构如上图,Concurr…

【Vue3】localStorage读取数组并赋值的问题

问题描述 今天在写项目用到localStorage进行存储并读取数据,并将读取到的数据存放到列表的时候,发现vue3不能直接对数组进行赋值。因为Vue3的响应式是proxy,对所有的数据进行了拦截。 onBeforeMount(() > {console.log(JSON.parse(local…

C语言学习笔记 使用vscode外部console出现闪退-12

前言 在使用vscode的外部console时,会出现闪退现象,这是因为程序运行结束后,系统自动退出了终端(终端机制决定的)。我们可以在C程序结束后,使用system函数来暂停DOS终端系统,这样就可以完整地看…