从零学java笔录-第11篇 程序流程控制 一

本文是《凯哥陪你学系列之java基础篇》

本讲主要内容:

判断结构

程序执行顺序,从上到下一行一行的执行的。

1判断语句

if语句:

三种格式:

1:只有if语句

2:if ….else语句

3:if ….else嵌套使用

1:只有if语句的

语法:

if(条件表达式) {

执行语句

}

作用:单条件判断

注意:条件表达式的结果只能是true或是false

代码演示

//需求:如果x>2输出yes

int x = 3;

if(x >2){

System.out.println("YES");

}

System.out.println("GAME OVER");

结果:

输出结果分析:

if语句中条件表达式为true的时候才会执行被if 大括号包含的代码。

如果条件表达式为false的时候,if语句及其大括号包含的代码都不会被执行。

而 3>2 返回true所以会执行if大括号内的代码。

注意

虽然if语句有自己的控制范围(就是if后面大括号的内容)。但是如下代码输入的结果是什么?

int b = 1;

if(x>0)

System.out.println(b);

System.out.println("GAME OVER");

输出结果

分析原因

虽然if有自己控制范围,但是当if语句后面只有一行执行语句的时候,此时if后面的一对大括号可以省略。

也即是说:如果if后面没有大括号确定范围。那么if语句只能控制离其最近的单条代码。

扩展:

if 语句嵌套使用:

语法:

if语句嵌套使用

if(表达式){

if(条件表达式2){

执行代码

}

}

代码演示:

if(x>2){

if(x==3){

System.out.println("YES");

}

}

System.out.println("GAME OVER");

执行结果:

思考:自己试着分析结果由来。

思考:如下代码输入结果

if(x>2)

if(x>3)

System.out.println("YES");

System.out.println("GAME OVER");

数据结果:

分析输出结果原因:

代码中两个if都没有大括号指明范围。所以if只能控制离其最近的单条语句。

所以:if(x>2) 这句离其最近的是 if(x>3)

而 if(x>3)离其最近的一句是:System.out.println("YES");

又因为 x = 3 是大于2的。所以 x>2 返回true.就会接着执行下面一句 if(x>3)这一句。

而 x=3不大于3的。所以 x>3返回false。这时候就不会再执行其下面的一句。也就是:System.out.println("YES");

而直接在往下一行执行。

所以YES不会被输出。而GAME OVER会被输出。

2:if()….else使用

语法:

if(条件表达式){

执行语句

}eles{

执行语句

}

作用:单条件判断。如果不成立执行else语句

代码演示:

//需求:如果x>2输出yes 否则输出no

int x = 3;

if(x >2){

System.out.println("YES");

}else{

System.out.println("NO");

}

输出结果:

输出结果分析:

3>2结果是true。所以就执行输出YES这条语句。而else语句不执行。

简单理解:

if(你的性别是男){

请去男厕所

}else{

请去女厕所

}

思考:

如下代码输出什么?

int a = 2 ,b;

if(a>1)

b = 100;

else

b = 200;

System.out.println("b="+b);

输出结果:

扩展:

简单的if else可以使用三元运算符代替

上面代码使用三元运算符表示:

b = (a>1?100:200);

完整代码:

int a = 2 ,b;

if(a>1)

b = 100;

else

b = 200;

System.out.println("b="+b);

//使用三元运算符

b = (a>1?100:200);

System.out.println("b="+b);

System.out.println("GAME OVER");

输出结果

从零学java笔录-第11篇 程序流程控制 一_第1张图片

注意:

if else简化成三元运算符前提:

当if else 运算后,有一个具体的结果时候,可以简写成三元运算符。

3:ifelse嵌套使用

语法:

if(条件表达式){

执行语句

} else if(条件表达式2){

执行语句2

}else{

执行语句3

}

作用:多条件判断。

注意:虽然上面代码很多。但是都是对同一个事物做判断的。所以运算完成后,最终有且只有一个执行语句被执行。

代码演示:

int x = 3;

if(x >1){

System.out.println("1");

}else if(x >2){

System.out.println("2");

} else if( x>3){

System.out.println("3");

}else{

System.out.println("4");

}

System.out.println("GAME OVER");

输出结果:

分析原因:

因为 x = 3 所以 x>1返回true 。所以输出1。虽然 3>2 也返回的是ture.但是 (x>2)是在else语句的。只有当上面if条件返回false的时候才会执行else的语句。

所以,只输出1.

思考:

如果去掉else后,修改成如下代码,运行结果又是什么?

int j = 3;

if(j >1){

System.out.println("j1");

}

if(j >2){

System.out.println("j2");

}

if( j>3){

System.out.println("j3");

}else{

System.out.println("j4");

}

System.out.println("GAME OVER");

运行结果:

分析输出结果:

if(j>1){}这个是完整的一条语句。

因为 if(j>2)前面没有else 所以 if(j>2){}这又是一条完整的语句

同理,if(j>3){}else{}这是一条完整的语句。

所以在执行完输出j1后,也会执行输出j2的语句。

有因为3不大于3.所以 j>3返回false.所以会执行else的语句,也就是输出j4的语句。

所以,输出结果就是 j1 j2 j4

if 语句练习:

1:根据用户输入的数值,输出对应的星期。

if语句练习2

需求:

根据用户输入的数值,输出对应的月中上中下旬值。

各位自己练习下。答案下节公布。

ps:欢迎关注凯哥微信公众号:凯哥Java

相关推荐:

从零学java笔录-第10篇 数据类型四

从零学java笔录-第9篇 数据类型 三

从零学java笔录-第8篇 数据类型二

从零学java笔录-第7篇 数据类型一

从零学java笔录-第6篇 进制之间转换

从零学java笔录-第5篇 java语言基础组成

从零学java笔录 Helloword 细节说明

从零学java笔录-第3篇 Helloworld

从零学java笔录-第2篇 jdk是否安装成功

从零学java笔录-第1篇 环境搭建

你可能感兴趣的:(从零学java笔录-第11篇 程序流程控制 一)