欢迎光临散文网 会员登陆 & 注册

150天打卡day06_流程控制

2021-03-01 18:03 作者:关阿姨的Java日记  | 我要投稿

今日内容

  • 单路分支之if

  • 多路分支之if_else

  • 多路分支之if_else_if

  • 多路分支之switch_case

流程控制

首先咱们要说说什么是流程控制,以及分支流程控制。

1.流程控制:程序运行的时候,我们来控制指令的流程的顺序,使用它的目的主要就是完成一个特定的业务顺序。在编程语言中主要有三类,顺序、分支、循环,任何复杂的程序逻辑都可以通过“顺序”、“选择”、“循环”三种基本的流程控制结构实现。

顺序结构

定义:是程序中最简单的流程控制,按照代码执行的先后顺序,依次执行,程序中的大多数代码都是这样执行的。

分支结构

选择结构使用场景:当程序在运行过程中, 需要根据不同的条件而运行不同的语句而产生不同的结果,即可以使用分支结构。

定义:选择结构也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个可能,所以产生选择,按照不同的选择执行不同的代码

循环结构

定义:指在满足某个条件的情况下重复的去做某个事情。

分支流程控制

1.单路分支

if语句

if语句的执行逻辑

语法:

执行步骤:

  • 步骤一:执行语句0;

  • 步骤二: 判断逻辑表达式的值,此表达式的值结果为boolean类型,即true或者false。此处可以是关系表达式也可以是逻辑表达式。

    • 若值为true,则执行if语句块中的语句;

    • 若值为false,则跳过if语句块;

  • 步骤三:执行语句3语句

例如:如果今天是星期天,为true咱们就休息,如果为false,咱们就学习

程序执行流程图(重点):

if案例

例如:去超市买东西,如果总价大于500,那么就打8折,否则全额支付

2. if else 双路分支语句

刚刚我们教了大家if的单路分支,接下来我们学习一下if else 的双路分支

当我们在做判断的时候出现否定的情况下,要执行else后的语句块

if-else语句的语法

执行步骤:

  • 步骤一:执行指令1;

  • 步骤二:判断if逻辑表达式的值:

    • 若值为true,则执行指令2;

    • 若值为false,则执行指令3;

  • 步骤三:执行指令4语句。

程序执行流程图(重点)

当条件满足时,执行语句块1,然后执行if-else语句下面的语句;

否则执行语句块2,再执行if-else语句下面的语句。

if_else案例

判断用户是否登录

if嵌套

判断条件可以嵌套

例如:用户输入有可能不合法(比如输入字母 A)

所以可以先判断输入的合法性(检查输入是否是一个有效的 double 类型)

然后再判断成绩的等级

3. if else if 多路分支语句

if···else if多分支语句用于针对某一事件的多种情况进行处理。

通常表现为“如果满足某种条件”,就进行某种处理,否则,如果满足另一种条件,则进行另一种处理。

if else if()语句处理分支逻辑

成绩判断

4.switch-case语句

switch-case是一种特殊的分支结构,与else if类似,但其应用面不如else if,只能用于特殊的情况之下, switch-case可以 根据一个整数值的不同取值,从不同的程序入口开始执行。

语法结构如下:

switch-case流程图如下所示:

分析上图,可以看出它的执行逻辑如下:

  1. 计算整数表达式的值:

  2. 若值等于整型常量值1,则从语句1开始执行,而后语句2、3,一直执行到语句n。

  3. 若值等于整型常量值2,则从语句3开始执行,一直执行到语句n。

  4. 若没有找到匹配的值,则只执行语句n。

通过分析可以看出, switch是以case后的整型常量作为入口的,若值相等,即开始执行其后面的语句。

使用switch时需要注意两个问题: 

第一,case后面的常量值必须不同

第二,switch后面的整型表达式的值必须是整型或字符型。

switch-case和break联合使用

break语句的作用在于 跳出switch结构

通常case1、case2、……、caseN对应完全不同的操作,可以和break语句配合使用, 执行完相应语句后即退出switch块,不继续执行下面的语句。 例如:

案例

在实际应用中,switch-case语句常常与break配合使用,例如:

代码运行结果为:“呼叫人事部”。因为匹配case2输出后,即break跳出switch语句了。

switch-case的优势

switch-case结构在实际应用中较广泛, 常常 和break语句结合使用实现分支的功能。

在很多情况下,switch-case可以代替else if结构,而switch-case实现分支功能的效率要高于else if结构,并且结构更清晰,所以推荐使用。

从JDK 7.0开始,switch-case可以支持字符串表达式,将更加方便程序的操作。


关注点赞,学习编程不迷路,笔芯❤~


150天打卡day06_流程控制的评论 (共 条)

分享到微博请遵守国家法律