分享

从零学java笔录

 孤独一兵 2016-10-18

本文是《凯哥陪你学系列之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');

结果:

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

输出结果分析:

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');

输出结果

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

分析原因

虽然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');

执行结果:

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

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

思考:如下代码输入结果

if(x>2)

if(x>3)

System.out.println('YES');

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

数据结果:

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

分析输出结果原因:

代码中两个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');

}

输出结果:

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

输出结果分析:

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

简单理解:

if(你的性别是男){

请去男厕所

}else{

请去女厕所

}

思考:

如下代码输出什么?

int a = 2 ,b;

if(a>1)

b = 100;

else

b = 200;

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

输出结果:

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

扩展:

简单的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篇 程序流程控制(一)

注意:

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');

输出结果:

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

分析原因:

因为 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');

运行结果:

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

分析输出结果:

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多