C# 编程语言学习系列(五)

2021-12-10 16:35:15 浏览数 (2590)

玩过游戏的朋友们都知道,游戏结局一般会有好些个,只有完成相应的条件,那么才会解锁对应的结局。今天,这篇文章来学习一下关于 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# 中的循环语句。