C# 编程语言学习系列(五)
玩过游戏的朋友们都知道,游戏结局一般会有好些个,只有完成相应的条件,那么才会解锁对应的结局。今天,这篇文章来学习一下关于 C# 语言中的条件判断语句。
一、条件判断语句
1、条件运算符
在第三天的学习记录中,在其他运算符中,有提到一种条件判断的条件运算符 exp?x:y
如果 emp
判定结果为 true,那么结果将会返回 x,否则返回 y。
int a = 2;
int b = 3;
string str = a > b ? "a比b大" : "b比a大";
这里的条件运算符和下面将要介绍的 if-else
语句大同小异。
2、判断语句
(1)if
语句
在编程语言中,一个 if
语句跟着一个布尔表达式和一个或者多个的程序语句:
if(emp)
{
// 语句 1
// 语句 2
// ...
}
只有当布尔表达式 emp
的结果为 true
,才会执行 if
语句中的程序语句,否则的话,就会跳过 if
语句。
(2)if-else
语句
一般的判断,预想有两个或者多个的结果。比如上面提到的条件运算符,比较两个数值的大小,如何都需要输出一个结果。
因此,if
语句在布尔表达式为 true
的时候,输出其中内容;而 else
语句是在当布尔表达式为 false
的时候,输出其中的内容。
int a = 3;
int b = 2;
if(a > b){
Console.WriteLine("a 大于 b ");
}
else{
Console.WriteLine("a 小于 b ");
}
很容易看出,这段代码的逻辑其实有一点问题,如果 a 和 b 是一样的值,哪个输出结果都是错误的。这时候在一整个条件语句,可能需要多个判断语句。多个判断语句,就需要使用 if - else if - else
语句。
if(a = b){
Console.WriteLine("a 等于 b");
}
else if(a > b){
Console.WriteLine("a 大于 b");
}
else{
Console.WriteLine("a 小于b");
}
这样一来,整个逻辑就显得清楚和明确了。
(3)嵌套判断
在满足某个前提的情况下,判断是否满足另外一个前提。这时候就需要使用嵌套语句来多重判断。
例如:你想去网吧玩游戏,第一个条件首先年龄要大等于18岁,其次的条件是钱包里的钱要带足了。要不然,就不能进去玩游戏了。
if(age >= 18){
if(money >= 10){
Console.WriteLine("我选亚索!");
}
}
满足了两个条件了,那么就可以游戏里面快乐地哈撒给了!
(4)switch 语句
如果需要判断的条件有十几二十个的,那么如果一直使用 else if
来判断,会使得代码看上去臃肿冗杂。
switch
语句允许测试当一个变量等于多个值时的情况。
// 语法
switch(expression){
case exp1:
statement1;
break;
case exp2:
statement2;
break;
// ...
case expn:
statementn;
break;
default:
d_statement;
break;
}
switch
语句后面的expression
必须是一个整数或枚举类型,或者是一个 class 类型。- 一个
switch
语句中可以有任意个case
语句,case
后面的值一定是和expression
是同类型的,而且必须是常量。 default
语句可有可无,当所有的case
语句都不满足,如果存在,就会执行default
的语句;如果不存在,输出一个空值。- C# 不支持从一个
case
贯穿到另一个case
语句。因此,break
关键词是一定要的。遇到第一个break
则就会结束整个switch
语句。
(4)嵌套 switch
语句
switch
语句同样也是可以嵌套的。
switch(num1){
case 1:
Console.WriteLine("这个 1 是属于外部的");
switch(num2){
case 1:
Console.WriteLine("这个 1 是属于内部的");
break;
}
break;
}
一个 switch
语句中嵌套了另一个 switch
语句,即使外部和内部的 case
常量值包含相同的值,是不会产生矛盾的。
值得注意的是,内部的 case
最后跟了 break
语句,外部的 case
也一定不能忘记 break
关键词。
二、总结
到这里,关于 C# 的条件判断语句的学习记录就已经结束了。
下一篇文章,将开始学 C# 中的循环语句。