C#选择语句if-else
一、核心基础认知
1. 条件判断的核心:通过 if 关键字判断一个“返回true/false”的条件,条件成立则执行对应代码块,不成立则跳过或执行兜底代码。
2. 语法基础:
-
条件部分:写在
()内,必须是能返回bool类型(true/false)的表达式(如 >、<、==、!=、逻辑与&&、逻辑或|| 等)。 -
代码块:用
{}包裹,条件成立时执行的代码,若只有一行代码,{} 可省略(不推荐,影响可读性)。
二、分支语句类型
1、基础if语句
1.单分支语句: 一般用来进行筛选
if (判断条件) 判断条件为bool值
{ 分支执行语句; }
代码示例
if (true) // true条件成立
{
Console.WriteLine("看看代码是否执行");
}
if (false)// false条件不成立
{
Console.WriteLine("代码不执行"); // 无法执行的代码
}
// 2. 输入年龄判断成年
int age = int.Parse(Console.ReadLine());
if (age > 18)
{
Console.WriteLine("成年了 想咋耍就咋耍");
}
2.双分支语句
适用场景:只有两种对立情况,必执行其中一个代码块(要么执行if,要么执行else)。
int score = 60;
// 条件1:分数>=90,成立输出"A"
if (score >= 90)
{
Console.WriteLine("A");
}
// 条件2:与上述条件相反(score<90),兜底输出"A-"
else
{
Console.WriteLine("A-");
}
💡 关键:else 不需要写条件,自动匹配“if条件不成立”的所有情况。
3.多分支语句
第一种方法
if...else if...else 语句
✅ 适用场景:3种及以上互斥情况,从上到下依次判断,只执行第一个满足条件的代码块。
int age1 = 12;
// 条件1:0-14岁,成立输出"总角"
if (age1 >= 0 && age1 <= 14)
{
Console.WriteLine("总角");
}
// 条件2:14-24岁(不满足条件1才会判断)
else if (age1 > 14 && age1 <= 24)
{
Console.WriteLine("弱冠-豆蔻");
}
// 条件3:24-40岁(不满足前两个才判断)
else if (age1 > 24 && age1 <= 40)
{
Console.WriteLine("三十而立");
}
// 条件4:40-70岁(不满足前三个才判断)
else if (age1 > 40 && age1 <= 70)
{
Console.WriteLine("知命之年");
}
// 兜底:所有条件都不满足(如70岁以上)
else
{
Console.WriteLine("耄耋");
}
💡 关键:
-
else if 必须跟在 if 后面,不能单独使用。
-
条件顺序很重要,避免“范围大的条件”放在前面(如先写age1<=40,会覆盖后面的小范围条件)。
-
else 可选,但推荐添加,避免出现“所有条件都不满足”时无输出。
第二种方法
连续独立 if 语句(多个独立判断)
✅ 适用场景:多个不互斥的条件,可能执行多个代码块(每个if独立判断,互不影响)。
int count = 90;
// 第一个独立判断:count>=90,成立执行
if (count >= 90)
{
Console.WriteLine("count大于等于90");
count = 60; // 修改count的值,影响下一个if的判断
}
// 第二个独立判断:不管第一个if是否执行,都会判断
if (count < 70)
{
Console.WriteLine("count小于70");
}
💡 关键区别(与else if对比):
-
连续if:每个if都执行判断,可能多个代码块都执行(如上例,两个if都执行)。
-
else if:只执行第一个满足条件的代码块,后续不再判断。
4. 条件嵌套(if 内部嵌套 if)
✅ 适用场景:需要“多层筛选”,先满足外层条件,再判断内层条件。
int age2 = 10;
string sex = "女";
// 外层条件:判断是否为男生
if (sex == "男")
{
// 内层条件:男生前提下,判断年龄是否>=18
if (age2 >= 18)
{
Console.WriteLine("是男生并且年龄超过18,可以结婚");
}
else // 男生,但年龄<18
{
Console.WriteLine("不到18不允许结婚");
}
}
else // 外层条件不成立(不是男生),兜底输出
{
Console.WriteLine("不是男生");
}
💡 注意:嵌套层级不宜过多(建议≤3层),否则代码可读性变差,可后续学习函数拆分优化。
三、核心总结
if-else 是 C# 中最基础的流程控制语句,核心是“根据条件执行不同代码”:
-
单条件无兜底 → 基础 if
-
二选一 → if...else
-
多条件互斥 → if...else if...else
-
多条件不互斥 → 连续独立 if
-
多层筛选 → 条件嵌套
重点:理解“互斥”和“独立”的区别,根据实际场景选择对应的用法,代码可读性优先。
更多推荐
所有评论(0)