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

发布于:2025-03-24 ⋅ 阅读:(26) ⋅ 点赞:(0)

前言

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

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

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

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

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

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

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

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

实战示例:

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语句(多选项选择器)

switch(要判断的变量)   // 👉 这里是"被检测对象"
{
    case 值1:         // 👉 像储物柜的编号标签
        // 代码块1
        break;        // 🚨 必须存在的出口
    case 值2:
        // 代码块2
        break;
    default:          // 🔑 万能钥匙(其他所有情况)
        // 默认代码
        break;
}
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)
switch(未知物体)
{
    case int x:   // 如果是整数
        Console.WriteLine($"数字:{x}");
        break;
    case string s:// 如果是字符串
        Console.WriteLine($"文字:{s}");
        break;
}

📌 必须牢记的规则

        1.​冒号的位置
        每个case后面必须跟英文冒号:(中文冒号会报错!)

case 10:  // ✅ 正确
case 10: // ❌ 错误(中文冒号)

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

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

        3.匹配机制

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

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

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

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循环(精确控制次数)

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

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

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

string[] 水果 = {"苹果", "香蕉", "橘子"};
foreach (var 单个水果 in 水果)
{
    Console.WriteLine(单个水果);
}

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

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

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

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

// do-while:至少执行一次
do {
    敲门();
} while (没人回应);

int count = 3;
while (count > 0) // 循环3次
{
    Console.Write(count + " ");
    count--; 
}
// 输出:3 2 1 
// 当count=0时条件 → false

int x = 0;
do 
{
    Console.Write(x + " ");
    x++;
} while (x < 0); // 条件初始为false
// 输出:0

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

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

1. break:立刻停止循环

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

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

2. continue:跳过本次循环

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

对比记忆

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

结语

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

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

 一起加油!


网站公告

今日签到

点亮在社区的每一天
去签到