美文网首页dotNETcsharp
C# Learning:选择语句

C# Learning:选择语句

作者: 月银秋 | 来源:发表于2020-04-01 12:28 被阅读0次

if 语句(if-else)

if语句根据bool值来识别运行哪个语句。if语句基本形式如下:

A
if(M)
    B
else
    C
D

其中M是一个bool表达式(比如bool类型的变量,比如调用具有bool类型返回值的方法,常见的有“a > 1”)。程序是这样执行的:

  • 执行A;
  • 如果M的值为true,执行B;否则,执行C;
  • 执行D。
    其中else部分不是必要的:
A
if(M)
    B
C

程序这样执行:

  • 执行A;
  • 如果M的值为true,执行B;
  • 执行C。
    为了避免在else中大量嵌套if,我们可以使用“else if”:
if(M)
    A
else if(N)
    B
else if(O)
    C
else if(P)
    D
...
else
    E

此时会依次从M、N、O、P、……判断下来,如果判断到true,则执行对应的代码,并且立即跳出整个if语句;如果全是false,则执行E。也就是说,在A、B、C、D、……、E中只可能有一段代码被执行了。
同样,else部分也是可选的,此时如果全都是false则没有任何一段会被执行。

switch语句(switch-case)

在此我们介绍的是C#6及之前的switch语句(C#7.0之后的switch比较复杂,放这里不太合适),基本语法如:

switch (A)
{
    case C1:
        S1
    case C2:
        S2
    case C3:
        S3
    ...
    default:
        D
}

其中C1、C2、C3、……必须是常数,且值互不相等;A和C1、C2、C3、……必须是字符型、字符串、bool、整数值(例如 int 或 long)或者枚举值。
由于C1、C2、C3、……必须值互不相等,因此A最多与其中之一相等,那么就从它对应的标签“case C1”、“case C2”、“case C3”开始执行……而若与其中任何一个都不相等,将转到default。
与else类似,default也是可选的,如果与任何一个都不相等,又无default,switch中的语句一个都不会执行。
switch中的“case C1”等等属于标签,因此并不是说S1结束之后就会停止,按道理来说会继续执行S2,直到全部都执行过。在C++中的确是允许如此的。为了解决这样的问题,可以使用比如return、goto等跳转语句进行跳转,这个可以参考我的另一篇文章《C# Learning:跳转语句》。但是这两个跳转方式还是比较麻烦,于是break语句的一个用法就产生了。

switch (A)
{
    case C1:
        S1
        break;
    case C2:
        S2
        break;
    case C3:
        S3
        break;
    ...
    default:
        D
        break;
}

这里的break就表示离开整个switch语句,就不会出现继续往后执行的情况。
要注意,不添加跳转语句的做法在C中是允许的,但在C#中为了确保不出现忘记写break等问题,这样的做法不被允许,它会被视为编译时错误。如果需要在某个case结束后执行另一个case,可以使用goto语句。

相关文章

  • C# Learning:选择语句

    if 语句(if-else) if语句根据bool值来识别运行哪个语句。if语句基本形式如下: 其中M是一个boo...

  • C# Learning:迭代语句

    关于如何使用break语句,continue语句等对迭代语句进行控制请见我的另一篇文章《C# Learning:跳...

  • C# 语句控制

    C# 语句控制 1 选择语句 1.1 if语句 1.2 switch语句 2 迭代语句 2.1 while语句 2...

  • C# Learning:跳转语句

    throw语句和yield语句也可以算作跳转语句,但前者也可以归为异常处理语句,届时再谈;后者相对复杂,可以在学习...

  • C#的循环

    c#循环结构 while语句while语句的语法格式为: while(表达式) {语句块}while语句的执行过程...

  • c# 学习笔记3

    条件判断 C# 中 switch 语句的语法: switch 语句必须遵循下面的规则: switch 语句中的 e...

  • 蓝鸥C#第二课

    蓝鸥C#第二课 #region 单分支语句if //if语句的表达式:if(条件){语句块1;语句块2} //如果...

  • c# 语句

    switch语句 当指定常量的时候,只能使用内置的整数类型 bool char enum和string 每个cas...

  • C语言017 第十七课 选择结构语句-1 2019-07-08

    选择结构语句 选择结构语句是有条件地执行语句,顺序结构语句是按照顺序执行语句。选择结构语句不同选择结构语句, 是按...

  • Golang learning 控制语句

    和其他编程语句一样的控制语句我们一起来看if else switch for

网友评论

    本文标题:C# Learning:选择语句

    本文链接:https://www.haomeiwen.com/subject/ircouhtx.html