C#开发入门【学习笔记】第三章 条件结构

第三章 条件结构

3-1 C#用流程图描述程序逻辑

流程图是程序步骤的图形化表示方法。流程图中包括如下符号:
在以上图形中,流程线用来连接相邻的两个步骤;每一个程序都有且仅有一个开始和结束。以上图形中,流程线用来连接相邻的两个步骤;每一个程序都有且仅有一个开始和结束。

举个栗子看看吧:

以下流程图描述的是,求2个浮点数的和,后边是用C#实现:
在这里插入图片描述

namespace Test
{
   class programstatic void main(string[]args)
   {
   double x=13.9,y=24.4;
   double sum =x+y;
   Console.Writeline (sum);
   }
  }
}

3-2C#中的判断和分支

走到岔路口,需要选择方向。编写程序也会遇到判断和分支。请看下面的流程图,判断手机账户余额是否不足10元,如果不足给出提示:
在这里插入图片描述
这个程序在“balance<10”这个步骤出现了分支,“balance<10”被称为判断( bool 类型),当判断为 true 时,执行左边的分支,输出提示;当判断为 false 时,执行右边的分支,不输出任何内容。
在C#中,这个结构成为条件结构,通常用 if 关键字来实现:
在这里插入图片描述
当 if 右边的判断为 true 的时候,会执行分支一;如果判断为 false ,则不会执行分支一。

3-3 C#中if…else结构

前一节我们学习了 if 条件结构。条件结构可以有2个分支,比如下面的流程图,判断一个整数是奇数还是偶数:在这里插入图片描述
这个流程图从C#实现如下,其中,条件为 true 时执行的分支写在 if() 后面的{}中;条件为 false 时执行的分支写在 else 后面的{}中。
在这里插入图片描述
这个由 if 和 else 组成的结构是条件结构的一种,它的基本逻辑是:当条件为 true 时,执行分支1,否则,执行分支2。这段程序中,变量num能够被2整除时会执行分支1,不能被2整除时执行分支2。程序的运行结果是:
在这里插入图片描述
每一个 if…else 结构都包含 1 个条件和 2 个分支,而程序会根据条件的真与假,选择执行其中的某一个分支。条件必须为 bool 类型的表达式。

3-4 编程练习

if…else 结构包含一个条件和两个分支:条件是 bool 类型表达式,写在 if 后面的圆括号里;分支写在 2 个 {} 里。
当条件为 true 时,执行 if 后面的分支,当条件为 false 时,执行 else 后面的分支。

3-5 C#中嵌套的if结构

程序开发中,往往需要先判断一个条件是否成立,再判断另一个条件。比如下面的例子:验证账号是否为“admin”,如果不是则提示错误;如果是,则验证密码是否为“bj2022”:在这里插入图片描述
用C#实现如下:
在这里插入图片描述
外层的if (userName == “admin”) 会被首先判断,如果为 false ,就会输出“用户名错误!”;如果为 true ,再判断内层的if (password == “bj2022”)。

3-6 C#中多重if结构

如果,有多个条件,其中只有一个成立,应该怎样判断呢?比如小明考试,90分以上奖励一台手机,80-89分奖励一个滑板,60-79分奖励一个烧饼,60以下没有奖励,0-100的分数被划分为4档,需要做3次条件判断。如果用上一节学习的嵌套if结构完成,3层if的嵌套会使程序变得很复杂。本节我们使用多重 if 结构实现,它的基本语法为:
在这里插入图片描述
程序运行时,将从上到下依次判断条件,若某个条件为 true ,则执行对应的分支,并且停止后面条件的判断。比如下面的代码,将输出“奖励一个烧饼”:
在这里插入图片描述

3-7 C#中if与else的匹配

if…else 条件结构中,如果某个分支只包含一条命令,那么是可以省略大括号{}的。比如上一节的练习,可以简化为:在这里插入图片描述
请注意,如果分支中包含2条以上的命令,是不能省略{}的。
如果 if 和 else 比较多,又省略了{},怎么判断那一个 if 和哪一个 else 是一对呢?
当出现多个 if 和 else ,又没有{}来界定范围时,请参考下面2条原则:
①每一个 else 与前面离它最近的 if 配对。按照这个原则,上面示例代码的两个 else 都与第二个 if 配对,这显然是不可能的,于是又有了第二个原则。
②多个 else 都与同一个 if 相近时,最内层的 else 优先配对。这样,第一个 else 处于内层,就与第二个 if 优先配对,第二个 else 只能与第一个 if 配对。上面的示例代码会输出“C”。
根据这两个原则,上面的代码等同于如下的规范代码:在这里插入图片描述
编写条件结构时,尽可能加上 {} 可以省掉不必要的错误和麻烦。

3-8 编程练习

多重 if 结构包含多个条件,每个条件对应一个分支。运行时,从上到下依次判断每一个条件,当某个条件为 true ,就执行对应的分支,并且不再验证其他的条件;若所有的条件均为 false ,则执行最后的 else 分支。

3-9 C#的条件运算符

C#提供了一种条件运算符,能够代替简单的 if…else 结构。这种条件运算符的语法如下:

条件表达式 ? 分支1 : 分支2

?: 就是条件运算符,可以看到它有3个操作数,所以又被称为三元运算符。它的运算逻辑是:当条件表达式为 true 时,执行分支1;当条件表达式为 false 时,执行分支2。
下面的例子中,根据年龄的大小,输出“成年人”或“未成年人”:
在这里插入图片描述
因为age=17,所以条件表达式age>=18的值为 false ,返回“未成年人”。

3-10 C#的switch结构

if…else 之外,C#中还有一种 switch 条件结构,可以用来对变量进行多个分支的等值判断。语法如下:
在这里插入图片描述

(变量)与每一个 case 后面的常量进行等值比较,如果相等,就执行对应的分支。执行分支以后, break 关键字会使 switch 结构中止,不会再判断后面的常量。如果变量与所有的常量都不相同,则执行 default 后面的分支。
下面的代码,根据运算符完成了四则运算中的一项:
在这里插入图片描述
上面的代码,因为变量oper的值与 case ‘*’ 匹配,所以会输出乘积“18”。
switch 中的(变量)只能是3种类型:整型(如 int )、字符型( char )、字符串类型( string )。

3-11练习题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值