本文是《凯哥陪你学系列之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");
输出结果
注意:
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
相关推荐: