C#入门学习记录(五)轻松掌握条件分支与循环语句

前言

编程就像给计算机写一份"烹饪指南",而条件分支循环就是这份指南中的关键指令。想象你要教机器人做蛋糕:

  • 条件分支 :"如果没有鸡蛋了,就去超市买"(做决定)
  • 循环 :"重复搅拌面糊100次"(重复动作)

本文会用简单易懂的语言和比喻,带你掌握C#中这两个核心概念。新手友好,放心食用!

一、条件分支:让程序学会"做选择"

1. if-else语句(基础版选择器)

cs 复制代码
if (今天下雨)
{
    Console.WriteLine("带伞出门");
}
else 
{
    Console.WriteLine("开心晒太阳");
}

像地铁的闸机,满足条件(刷卡成功)开闸放行,否则(刷卡失败)拦下你。

  • 代码从上往下执行,一旦满足某个条件,跳过其他所有分支
  • 多个条件时用else if
cs 复制代码
if (成绩 >= 90)       // 先判断最严格的条件
{
    Console.WriteLine("A");
}
else if (成绩 >= 60)  // 前一个不满足才会到这里
{
    Console.WriteLine("及格");
}
else                 // 所有条件都不满足
{
    Console.WriteLine("加油!");
}

实战示例:

cs 复制代码
int score = 85;

// 示例1:简单条件
if (score >= 60) // true
{
    Console.WriteLine("及格");
}
else
{
    Console.WriteLine("不及格");
}

// 示例2:多重条件
if (score >= 90)          // false
{
    Console.WriteLine("优秀");
}
else if (score >= 80)     // true
{
    Console.WriteLine("良好");
}
else                      // 跳过
{
    Console.WriteLine("一般");
}

2. switch语句(多选项选择器)

cs 复制代码
switch(要判断的变量)   // 👉 这里是"被检测对象"
{
    case 值1:         // 👉 像储物柜的编号标签
        // 代码块1
        break;        // 🚨 必须存在的出口
    case 值2:
        // 代码块2
        break;
    default:          // 🔑 万能钥匙(其他所有情况)
        // 默认代码
        break;
}
cs 复制代码
string weather = "大雨";

// 传统写法
switch (weather)
{
    case "晴":   // false
        Console.WriteLine("去野餐");
        break;
    case "小雨": // false
        Console.WriteLine("带伞出门");
        break;
    case "大雨": // true
        Console.WriteLine("宅家睡觉");
        break;
    default:     // 未触发
        Console.WriteLine("正常上班");
        break;
}

// 类型匹配(C# 7.0+)
object data = 150;
switch (data)
{
    case int num when num > 100: // true(满足类型int且值>100)
        Console.WriteLine("超额完成");
        break;
    case string text:            // false(类型不匹配)
        Console.WriteLine("文字信息");
        break;
}

像老式电话转盘,转到对应号码(case)才接通。

  • 每个case必须用breakreturn结尾(防止"漏电"执行下一个case)
cs 复制代码
switch(未知物体)
{
    case int x:   // 如果是整数
        Console.WriteLine($"数字:{x}");
        break;
    case string s:// 如果是字符串
        Console.WriteLine($"文字:{s}");
        break;
}

📌 必须牢记的规则

1.​冒号的位置

每个case后面必须跟英文冒号:(中文冒号会报错!)

cs 复制代码
case 10:  // ✅ 正确
case 10: // ❌ 错误(中文冒号)

​ 2.break的重要性

每个非空case块必须用breakreturn结束(防止"穿透"执行下一个case)所以这里如果你的两个case执行的代码是一样的话,你就可以尝试贯穿!

cs 复制代码
case 1:
    Console.WriteLine("One");
    // ❌ 这里缺少break会导致编译错误

3.匹配机制

传统用法:精确匹配常量值(像精确查找字典页)

cs 复制代码
switch(考试等级)
{
    case 'A':  // 精确匹配字符A
        GivePrize();
        break;
    case 'B':
        Encourage();
        break;
}

现代用法:类型匹配+条件过滤(C# 7.0+)

cs 复制代码
switch(未知物体)
{
    case int num when num > 100:  // 先匹配类型,再加条件
        Console.WriteLine("大数字");
        break;
    case string text when text.Length > 5:
        Console.WriteLine("长文本");
        break;
}
要素 说明 类比
switch(变量) 被检测的"嫌疑人" 机场安检的行李
case 值: 嫌疑人的"特征标签" 行李X光显示的金属物品
break 结束检查的"通关口令" 安检员放行的OK手势
when条件 更精细的"特征识别" 开箱检查的详细流程
default "其他所有未知物品"处理通道 无标签行李的特殊处理通道

二、循环语句:让程序学会"重复劳动"

1. for循环(精确控制次数)

cs 复制代码
// 打印1~5的数字
for (int i=1; i<=5; i++) 
{
    Console.WriteLine(i);
}

执行顺序

int i=1 → ② i<=5 → ③ 执行代码 → ④ i++ → 重复②③④...

2. foreach循环(遍历集合)(迭代器)

cs 复制代码
string[] 水果 = {"苹果", "香蕉", "橘子"};
foreach (var 单个水果 in 水果)
{
    Console.WriteLine(单个水果);
}
cs 复制代码
string[] fruits = { "苹果", "香蕉", "橘子" };
foreach (var fruit in fruits) // 遍历3个元素
{
    Console.Write(fruit + " "); 
}
// 输出:苹果 香蕉 橘子

禁忌:循环中不能增删集合元素!否则会报错(像边吃糖果边往盒子里放新糖)

3. while/do-while(条件循环)

cs 复制代码
// while:先检查条件再执行
while (水没烧开) 
{
    继续加热();
}

// do-while:至少执行一次
do {
    敲门();
} while (没人回应);
cs 复制代码
int count = 3;
while (count > 0) // 循环3次
{
    Console.Write(count + " ");
    count--; 
}
// 输出:3 2 1 
// 当count=0时条件 → false
cs 复制代码
int x = 0;
do 
{
    Console.Write(x + " ");
    x++;
} while (x < 0); // 条件初始为false
// 输出:0

区别:while像"先看红灯再停车",do-while像"先按门铃再等回应"

三、循环控制双子星:break和continue

1. break:立刻停止循环

cs 复制代码
for (int i=1; i<=10; i++)
{
    if (i == 5) 
    {
        break; // 当i=5时,直接结束整个循环
    }
    Console.WriteLine(i);
}
// 输出:1 2 3 4

像煮面时突然发现糊锅了,立即关火停止。

2. continue:跳过本次循环

cs 复制代码
for (int i=1; i<=5; i++)
{
    if (i == 3) 
    {
        continue; // 跳过i=3这次循环
    }
    Console.WriteLine(i);
}
// 输出:1 2 4 5

对比记忆

break continue
作用范围 整个循环 当前这次循环
常见场景 找到目标后提前退出 过滤特定条件数据

结语

掌握条件分支和循环,你就拿到了编写"智能程序"的钥匙。记住两个核心思想:

  1. 条件分支:让程序在不同情况下做出不同反应
  2. 循环:让机器不厌其烦地处理重复工作

一起加油!

相关推荐
智商不在服务器25 分钟前
XSS 绕过分析:一次循环与两次循环的区别
前端·xss
MonkeyKing_sunyuhua29 分钟前
npm WARN EBADENGINE required: { node: ‘>=14‘ }
前端·npm·node.js
Hi-Jimmy1 小时前
【VolView】纯前端实现CT三维重建-CBCT
前端·架构·volview·cbct
janthinasnail1 小时前
编写一个简单的chrome截图扩展
前端·chrome
Echo_HR9101 小时前
[WPF] 在RichTextBox中输出Microsoft.Extension.Logging库的日志消息
c#·wpf·#.net core
日暮南城故里1 小时前
Java学习------初识JVM体系结构
java·jvm·学习
拉不动的猪2 小时前
刷刷题40(vue中计算属性不能异步,如何实现异步)
前端·javascript·vue.js
冴羽yayujs2 小时前
SvelteKit 最新中文文档教程(6)—— 状态管理
前端·javascript·vue.js·前端框架·react·svelte·sveltekit
小嘚2 小时前
springCloud的学习
学习·spring·spring cloud
烛阴2 小时前
前端进阶必学:JavaScript Class 的正确打开方式,让你代码更清晰!
前端·javascript