从零开始学大数据-Java基础-流程控制语句(5)


我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop、Spark、Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习。


上一节学习了三元运算符/键盘录入,本节学习流程控制语句。

开始之前,我们先看一下上节的练习题。


一、练习题

(1)键盘录入三个数据,获取三个数据中最大值,程序如下:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果如下:

从零开始学大数据-Java基础-流程控制语句(5)

(2)键盘录入两个数据,比较两个数据是否相等,程序代码如下:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果如下:

从零开始学大数据-Java基础-流程控制语句(5)


二、流程控制语句


通过我们前面的学习,我们应该可以感觉到在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,也就是说程序的流程对运行结果有直接的影响。


所以,我们必须要清楚每条语句的执行过程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

下面我们来讲讲流程控制语句的分类(主要有三种):

  • 顺序结构

  • 选择结构

  • 循环结构


流程控制语句概念:可以控制程序的执行流程


1、顺序结构


规则:从上往下,依次执行

举例:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果:

从零开始学大数据-Java基础-流程控制语句(5)


2、选择结构(也被称为分支结构)

选择结构有两种语句,分别为如下:

  • if 语句

  • switch语句


   

if语句


if语句(三种格式)

  1. 格式1:适合做单个判断

  2. 格式2:适合做两个判断

  3. 格式3:适合做多个判断


if语句格式1

if(比较表达式){

语句体;

}


执行流程规则:

  • 先计算比较表达式的值,看其返回值是true,还是false.

  • 如果是true,就执行语句体;

  • 如果是false,就不执行语句体。

序代码举例:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果:

从零开始学大数据-Java基础-流程控制语句(5)

  • 可见,在if语句中,x等于10为true,大括号里的语句体可以正常执行;

  • x等于20为false,大括号里的语句体不执行,但不影响后面的语句“over”执行.


if语句的注意事项:

  1. 比较表达式无论简单还是复杂,结果必须是boolean类型

  2. if语句的语句体如果是一条语句,大括号可以省略;

  3. 如果是多条语句,就不能省略,建议永远都不要省略。

  4. 一般来说,有左大括号就没有分号,有分号就没有左大括号

如下程序代码,if语句里面的表达式都是布尔类型的

从零开始学大数据-Java基础-流程控制语句(5)


if语句格式2


if(比较表达式){

语句体1;

}else {

语句体2;

}

执行流程:

  • 首先计算比较表达式的值,看其返回值式true还是false.

  • 如果式true,就执行语句体1;

  • 如果式false,就执行语句体2;

注意:else后面是没有比较表达式的,只有if后面才会加表达式


程序代码案例,如下:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果:

从零开始学大数据-Java基础-流程控制语句(5)


练习题:


下面我们针对if else语句做两个练习题:

1、获取两个数据中较大的值

2、判断一个数据是奇数还是偶数,并输出

程序代码如下,我将两道题都通过下述代码实现:

从零开始学大数据-Java基础-流程控制语句(5)

执行结果:


从零开始学大数据-Java基础-流程控制语句(5)

  • 可见,if语句和三元运算符可以完成相同的效果,但也是有需要注意以下的区别:

区别:

三元运算符实现的,都可以采用if语句实现,反之不成立。

什么时候if语句实现不能用三元运算符改进呢?

  • 当if语句控制的操作是一个输出语句的时候就不能。

  • 因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。


案例:

从零开始学大数据-Java基础-流程控制语句(5)


程序执行结果:

从零开始学大数据-Java基础-流程控制语句(5)


如果将判断奇偶的例子,使用三元运算做改进,可以参照以下程序代码:

从零开始学大数据-Java基础-流程控制语句(5)

程序执行结果:

从零开始学大数据-Java基础-流程控制语句(5)


  • 可见,验证了我们前面提到的三元运算符实现的,都可以采用if语句实现,反之不成立的结论。


if语句的格式3


if(比较表达式1){

语句体1;

}else if(比较表达式2){

语句体2;

}else if(比较表达式3){

语句体3;

}

...

else{

语句体n+1;

}

执行流程:

  • 首先计算表达式1看其返回值是true还是false,

  • 如果是true,就执行语句体1,if语句结束。

  • 如果是false,接着计算比较表达式2看其返回值是true还是false

  • 如果是true,就执行语句体2,if语句结束

  • 如果是false,接着计算比较表达式3,看其返回值是true还是false.

  • ...

  • 如果是false,则执行语句体n+1.

举例:键盘录入一个成绩,判断并输出成绩的等级。

  • 90 - 100 优秀

  • 80 - 90 好

  • 70 - 80 良

  • 60 - 70 及格

  • 0 - 60 不及格

程序代码如下:



程序执行结果:


注意:

在写一个程序的基本测试的时候,一定要考虑以下几个问题:

  • 正确数据

  • 错误数据

  • 边界数据


所以针对上面的数据,我们可以做个改进,先判断先错误数据,这样会更好,如下:



扩展练习题(自行完成):

1、获取两个数据中较大的值

2、判断一个数据是奇数还是偶数,并输出


本节我们就先告一段落,下一节我们将学习Switch语句


往期文章:


从零开始学大数据-Java基础开篇(1)

从零开始学大数据-Java基础语法(2)

从零开始学大数据-Java运算符(3)

从零开始学大数据-Java基础-三元运算符/键盘录入(4)


从零开始学大数据-Java基础-流程控制语句(5)