C#选择结构完全教程(if单分支、双分支、多分支、switch穿透)零基础完整版

一、程序三大基础结构(必背)

所有程序代码,只由三种结构组成:

  1. 顺序结构:代码从上往下逐行执行(默认全部代码都是顺序执行)

  2. 选择结构:根据条件真假,选择性执行代码(本节课重点:if / switch)

  3. 循环结构:重复执行某段代码(后续 for / while 学习)

二、C# 所有选择结构 5 种写法

1. 三元运算符 ?:(简短二选一)

2. 单分支 if(满足才执行,不满足跳过)

3. 双分支 if-else(二选一,必执行一段)

4. 多分支 if else if else(多区间判断)

5. switch-case(精准固定值匹配)


三、单分支 if 结构(最基础)

1. 语法格式

if (布尔条件)
{
    // 条件为 true 才执行
}

2. 核心规则

  • if 括号里 只能是 true / false

  • 条件成立 → 执行大括号代码

  • 条件不成立 → 直接跳过,不执行任何内容

3. 实战案例:判断成年

int age = 20;
if (age > 18)
{
    Console.WriteLine("已成年,可以进入");
}

4. 超级易错点(必考坑)

错误1:if 后面不能加分号!!

if(age > 18); // 致命坑!分号代表语句结束
{
    Console.WriteLine("成年"); // 这段代码永远执行,不受if控制
}

错误2:判断相等必须用 ==,不能用 =

  • if(age = 18) 赋值,报错

  • if(age == 18) 判断相等,正确

错误3:if 不能写数字

  • C# 严格布尔语法:if(1)if(0) 全部报错

四、双分支 if-else 结构(二选一)

1. 语法格式

if (条件)
{
    // true 执行
}
else
{
    // false 执行
}

2. 核心特点

一定会执行其中一段代码,没有第三种情况

3. 案例1:成年未成年判断

int age = 20;
if (age > 18)
{
    Console.WriteLine("已成年");
}
else
{
    Console.WriteLine("未成年");
}

4. 案例2:奇偶判断(结合取余 %)

int num = 7;
if (num % 2 == 0)
{
    Console.WriteLine("偶数");
}
else
{
    Console.WriteLine("奇数");
}

5. 案例3:上位机温度判断

double temp = 65;
if (temp > 60)
{
    Console.WriteLine("温度超标,启动报警");
}
else
{
    Console.WriteLine("温度正常");
}

6. 双分支注意事项

  • else不能写条件、不能写括号

  • if 和 else 中间不能插无关代码

  • else 永远匹配「最近的未配对if」

单分支 vs 双分支 对比

类型 特点 适用场景
单分支if 满足才执行,不满足直接跳过 只需处理成功情况,失败不用提示
双分支if-else 真假必执行一段 两种情况都需要反馈(正常/异常、成年/未成年)

五、Switch 选择结构(精准值匹配)

1. switch 适用场景

  • if:适合区间判断(> < >= <=)

  • switch:适合固定精准值匹配(档位、状态、月份、选项)

2. switch 支持的数据类型

int、string、char、enum(不支持 double、小数、区间)

3. 标准语法

switch(变量)
{
    case 值1:
        //匹配成功执行
        break;
    case 值2:
        //匹配成功执行
        break;
    default:
        //全部不匹配时执行(类似else)
        break;
}

4. 核心重点 break(必考)

  • break 作用:跳出 switch

  • 不写 break 会发生 case穿透(继续执行下一个case)


六、Switch 穿透用法(高级必考)

1. 穿透原理

多个case 不写break → 自动往下执行 → 直到遇到break停止

作用:多个值共用同一套代码,避免重复书写

2. 经典四季判断(完整可运行)

int month = int.Parse(Console.ReadLine());
switch (month)
{
    case 3:
    case 4:
    case 5:
        Console.WriteLine("春季");
        break;
    case 6:
    case 7:
    case 8:
        Console.WriteLine("夏季");
        break;
    case 9:
    case 10:
    case 11:
        Console.WriteLine("秋季");
        break;
    case 12:
    case 1:
    case 2:
        Console.WriteLine("冬季");
        break;
    default:
        Console.WriteLine("输入月份不合法");
        break;
}

3. 穿透执行流程举例

输入 3 → 进入case3,无break → 自动执行case4、case5代码 → 打印春季 → break结束


七、选择结构全部易错点终极总结

  1. if后不能加分号,会废掉判断结构

  2. 判断相等用==,不能用=

  3. if括号内只能布尔,不能写数字

  4. else 不带条件、不带括号

  5. switch case 只能写固定常量,不能写表达式

  6. switch 每个case正常必须带break

  7. 穿透只用于「多值共用同一逻辑」场景

  8. switch 不支持小数、区间判断

八、选择结构使用场景总结(面试常问)

  • 简单二选一:三元运算符

  • 只需要处理满足条件:单分支if

  • 两种情况都要处理:if-else

  • 区间范围判断(分数、温度、数值分级):if else if

  • 固定精准值、档位、状态:switch-case(穿透简化代码)

posted @ 2026-08-05 21:15  狂浪的狼  阅读(20)  评论(0)    收藏  举报