博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记:流程控制之分支语句
阅读量:4155 次
发布时间:2019-05-25

本文共 5041 字,大约阅读时间需要 16 分钟。

Java学习笔记:流程控制之分支语句

流程控制

       流程控制(flowof control是程序执行动作的顺序。Java和其他大多数其他编程语言,都使用了两种语句来规范控制流程:分支语句(branchingstatement会从两个或多个可能的动作列表中选择一个动作;循环语句(loopstatement会不断地重复一个动作,直到满足某种停止条件为止。

1、布尔表达式

在介绍流程控制之前,有必要介绍下布尔表达式

Boolean_Expression,布尔表达式,顾名思义,这是一个表达式,但结果是一个布尔值,也就是说这个表达式的值非真即假(必须是truefalse,与C++/C不同,Java中不认为0是假)。这个真假是通过逻辑运算符计算得到的,关于逻辑运算符,请参考这篇文章

income >=1000;这就是一个布尔表达式。如果income的值为20002000大于1000,那么这个布尔表达式的值为true,如果income的值为800800不大于1000,那么这个布尔表达式的值为false。也就是说,布尔表达式是一个判断式。在不同的情况下得出真或假的结果。

布尔表达式要用括号括起来。由于单一的布尔表达式是一个布尔值。针对布尔值可以用逻辑运算符进行操作。

例如,需要同时满足两个条件,那么就可以用以下的表达方式:

((sub_Boolean_Expression1)&&(sub_Boolean_Expression1));
        注意括号的使用。
&&
运算符是表达“与”,当这两个子表达式都为真的时候,整个大的表达式才为真。具体示例:
((income>=1000)&&(income <= 5000));
      这就是限定
income必须在
1000
5000之间。
注意:
Java
不允许连续的判断,如
5000<= income <= 1000
。只能将小的判断式(布尔表达式)用逻辑运算符和括号组织起来,组成大的布尔表达式。

如果有两个条件,只需要满足其中一个条件,那么可以用||运算符,用来表示“或”。如((income>=5000)||(income <= 1000));表示income大于5000或小于1000

如果想取一个条件的相反值,比如想得到income不大于1000的情况下,可以选择布尔表达式

(income< 1000)或 !(income >=1000);
      第一个表达式的意思是:
income小于
1000,第二个表达式是取
income大于等于
1000的相反情况。这里
!”的作用是

  1. If-else分支语句

对分支语句的讨论,将以一种能在两种可能的备选动作中进行选择的Java语句作为开始。分支语句中必须有条件判断式(布尔表达式),当程序运行到分支语句时,会选择符合相应的判断式,并执行其分支语句。

If-else语句

if-else语句根据判定条件的真假来执行两种操作中的一种,基本语法为:

If (Boolean_Expression)      Statement_1;Else      Statement_2;
        如果
Boolean_Expression为真,就执行
Statement_1;否则,执行
Statement_2

举例:

If (time < limit)      System.out.printlin(“Youmade it.”);Else      System.out.println(“Youmissed the deadline.”);

If语句(省略else部分):

If(Boolean_Expression)      Action_Statement;
          如果
Boolean_Expression为真,就执行
Action_Statement,否则什么也不会发生,程序跳过该
if语句执行下一条语句。

复合语句

      如果要在一个选择中包含多条语句,就要像下面的例子这样用花括号将这些句子组织起来:

if(Boolean_Expression) {      statement1 ;      statement2 }else{      statement3 ;      statement4 ;}
         当条件
Boolean_Expression为真时,执行
statement1
statement2(注意当一个选择分支中有多条语句需要执行时,需要将这些语句用大括号括起来形成一个整体)。当
Boolean_Expression为假时,执行
statement3
statement4

嵌套语句

      上述中介绍的只能选择两种情况:income大于等于1000income小于1000两种情况。

       如果在income大于1000的情况下,又要考虑income10005000之间和income大于5000两种情况怎么办?这就要用到了嵌套语句。就是在一条if-else语句中使用另一条if-else语句。如下:

if(Boolean_Expression1) {       if(Boolean_Expression2)        {              statement1 ;       }       else       {              Statement2 ;       }}else{       statement3 ;}
        这里,先判断表达式
Boolean_Expression1的真假,如果为真,执行
if里面的语句块;如果为假,执行
else里面的语句块。假设
Boolean_Expression1为真,那么将要执行第一层
if的语句块,这个语句块里是另一个
if-else语句块。所以判断
Boolean_Expression2的真假,当为真时,执行
statement1 ;。为假时,执行
statement2 ;然后这整个
if-else语句就执行结束了。

     注意:嵌套语句中的ifelse要一一对应:外层的对应外层的,内层的对应内层的。

多条件选择

    如果选择情况不止两种,那么可以用elseif来添加选择条件,基本格式如下:

if(Boolean_Expression1){         statement1;}elseif(Boolean_Expression2){         statement2;}...elseif(Boolean_ExpressionM){         statementM;}Else{        statementN;}

        这里执行的时候,任意两个Boolean_Expression不能同时为真。程序会执行当时条件下,Boolean_Expression为真的那个语句块下的语句。

需要注意的地方:缩进不是必须的,但为了阅读的方便,强烈建议每一个对应的ifelse具有相同的缩进。如果每个分支语句中需要执行的语句超过一条,必须用花括号将语句组织起来。(嵌套的内部if-else语句中如果只有一条执行语句,如嵌套语句那一节介绍的例子一样,虽然可以不用花括号,但从方便阅读代码的角度来看,依然建议使用)。

如这一系列文章的第一篇的开头所述,Java中每个单一的语句后都必须以分号结尾。

else子句不能单独作为语句使用,它必须和if配对使用。else总是与离它最近的if配对。可以通过使用大括号{}来改变配对关系。

2.switch语句

分支语句不仅可以根据布尔表达式进行分支选择,还可以根据具体的值来选择分支。假设一种情景,测验中得到A的是90分以上,得到B的是80——90分。得到C的是70-80分。那么就可以根据这些具体的值来使用switch语句。(当然,也可以判断得到的成绩是不是ABC的布尔表达式加多分支if-else语句来实现,但是用switch语句更简单,等会会有一个例子来进行对比)。

Switch语句是分分支语句,它会根据一个整数或字符表达式的值来决定进入哪条分支。基本语法:

switch(control_expression){         case value1:                statement1;                 break;         case value2:                statement2;                 break;         …………         case valueN:                statemendN;                 break;         [default:defaultStatement;] }

解释:

跟在关键字switch后面,以括号括起来的部分称为控制表达式(control_expression),这个表达式必须返回某种简单类型的值(如整型、实型、字符型),执行switch语句时,先将控制表达式返回的某个值,将这个值与每个case子句中的值相比。如果匹配成功,则执行该case子句后的语句序列。       

        每一个case分支就是一个选择分支,case分支可以有任意个。跟在关键字case后面的是一个常量值,如value1,每个case分支中的值必须是不同的。

Default分支是任选的(可以有default语句,也可以没有)。当表达式的值与任一case分支中的值都不匹配时,程序执行default后面的语句。如果表达式的值与任一case子句中的值都不匹配且没有default子句,则程序不作任何操作,而是直接跳出switch语句。

注意:break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。因为case分支只是起到一个标号的作用,用来查找匹配的入口并从此处开始执行,对后面的case分支不再进行询问是否匹配,而是直接执行其后的语句序列,因此该在每个case分支后,要用break来终止后面的case分支语句的执行。在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break

因为每一个case分支后面,都有一个冒号,所以case分支中包括多个执行语句时,可以不用大括号{}括起。

编程示例:

int code = 2;switch(code){        case 1:                System.out.println(“code is 1.”);                Break;        case 2:                System.out.println(“code is2.”);                Break;        case 3:                System.out.println(“code is 3.”);                Break;}
        如果用
if-else语句,会有点麻烦。如下:
int code = 2;If(code ==1){        System.out.println(“code is 1.”);}Else if(code == 2){        System.out.println(“code is 2.”);}Else f(code == 3){        System.out.println(“code is 3.”);}
        这还是最简单的情况下,复杂情况下,
switch语句会比
if-else语句简洁许多。

注意:

       1、在switch语句中使用break语句:如果只期望执行一条case分支,那么就要在那个case分支结束的地方加上break语句。不然当程序找到匹配的分支后,该分支后面的分支将不进行判断,而是直接执行。

2、在if-else语句中,判断连个值是否相等,使用的是Java中的等于号“==”,而不是赋值号“=”

3、在任何两个大括号之间声明的变量只能在这个大括号内部使用。所以,若在一个分支内部声明了一个变量,那只能在这个分支内部使用。如果想在分支外部使用这个变量,那么就要在分支外部先声明好这个变量。

转载地址:http://wgrti.baihongyu.com/

你可能感兴趣的文章
OpenLDAP for Windows 安装手册(2.4.26版)
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>