C# —— 系统学习(控制结构)

下面时所有控制结构的实例与解析

条件分支结构 - if-else

cs 复制代码
int score = 85;
if (score >= 90)
{
    Console.WriteLine("优秀");
else if (score >= 80)
{
    Console.WriteLine("良好");
}
else
{
    Console.WriteLine("合格");
}

这段代码使用的是if-else条件语句链。它首先检查变量score是否大于等于90,如果是,则输出"优秀"。如果不是,则继续检查下一个条件(即score是否大于等于80),如果是,则输出"良好";如果score既不大于等于90也不大于等于80,则执行else后的语句块,输出"合格"。

switch-case

cs 复制代码
char gradeChar = 'B';
switch (gradeChar)
{
   case 'A':
        Console.WriteLine("优秀");
        break;
   case 'B':
       Console.WriteLine("良好");
        break;
    case 'C':
        Console.WriteLine("中等");
        break;
    default:
        Console.WriteLine("未知等级");
        break;
}

此段代码使用switch-case结构来根据变量gradeChar的值执行不同的代码块。当gradeChar等于'A'时,输出"优秀",接着遇到break语句结束当前case并跳出switch。同样,如果gradeChar等于'B'则输出"良好",等于'C'则输出"中等"。default语句用于匹配所有未列出的情况,此处输出"未知等级"。

循环结构 - for

cs 复制代码
for (int i = 1; i <= 10; i++) // 输出1到10
{
    Console.Write(i + " ");
}

这是一个for循环,初始化部分设置了变量i为1,条件部分检查i是否小于或等于10,每次循环结束后递增i的值。循环体内的代码会在满足条件的情况下重复执行,直到i不再小于或等于10为止。此循环会依次打印出1到10之间的整数,并在每个数字之间加上空格。

while循环

cs 复制代码
int counter = 0;
while (counter < 5)
{
    Console.WriteLine(counter);
    counter++;
}

这是一个while循环,只要条件counter < 5成立,就会一直执行循环体内的代码。初始时,counter被赋值为0,每次循环内部都会打印counter的当前值,并将其加1。因此,此循环将打印出0到4这五个数字,每次打印完都会更新counter的值。

do-while循环

cs 复制代码
int j = 0;
do
{
    Console.WriteLine(j);
    j++;
} while (j < 5); // 至少会执行一次循环体

do-while循环与while循环类似,但是它确保至少执行一次循环体,不管初始条件是否满足。在这里,先执行循环体,然后检查条件j < 5。所以无论初始时j是多少,都会首先打印j并增加它的值,之后再检查条件。同样,这个循环也会打印出0到4这五个数字。

跳转语句 - continue 和 break

cs 复制代码
for (int k = 1; k <= 10; k++)
{
   if (k == 5)
   {
        continue; // 当k等于5时,跳过本次循环体剩余部分,进入下一次循环
    }
    else if (k == 8)
    {
        break; // 当k等于8时,退出整个循环
    }
    Console.WriteLine(k);
}

在这段代码中,嵌套在一个for循环内有if-else条件语句。当变量k等于5时,continue语句被执行,这会导致程序立即跳过当前循环迭代的剩余部分,直接开始下一次迭代。而当k等于8时,break语句被执行,此时整个包含break的循环(即for循环)会被立即终止,不再执行后续的任何循环迭代。在没有遇到continue或break时,循环会正常打印出k的值。

相关推荐
水云桐程序员2 小时前
从零开发软件的步骤,软件开发从零到完成应该怎么做?
笔记·学习·软件构建·个人开发
David猪大卫3 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮4 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
xiaoye-duck5 小时前
《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
nice_lcj5207 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河667 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
叼烟扛炮10 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
nice_lcj52012 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
紧跟先前的步伐12 小时前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
bksczm13 小时前
InnoDB 行格式详解:DYNAMIC / COMPACT / COMPRESSED / REDUNDANT
java·开发语言·数据库