条件判断语句(if-else)
if-else 语法
- if-else 语法,只有一个语句块被执行
- if 和 else都是Java中的关键字
- if 语法
- 把 if-else 看做一个表达式,程序整体还是顺序执行的
if (boolean值) {
if 语句块
} else {
else 语句块
}
例如:买包子,如果包子是新出炉的,那么再多买2个;否则就买3个。
public class IfElseBaozi { public static void main(String[] args) { int baozi = 3; boolean baoziGangChuLong = true; if(baoziGangChuLong) { baozi = baozi + 2; System.out.println("包子刚刚出笼,买了" + baozi + "个肉包子。"); }else { System.out.println("买了" + baozi + "个肉包子。"); } } }
if-else 的嵌套
- if-else 就是一个语句,可以是另一个语句的一部分,也可以是 if-else 的一部分,即嵌套。
求a,b,c三个数的最大数。
public class Example2 { public static void main(String[] args) { int a = 100; int b = 100; int c = 23; // 分这几种情况:abc等大;a最大;b最大;c最大;ab等大并且最大;ac等大并且最大;bc等大并且最大。 if (a==b&&b==c){ // a=b=c System.out.println("a,b,c等大,为"+a); }else { if(a>b){ if(a>c){ System.out.println("a最大,为"+a); }else{ // a<=c if (a==c){ System.out.println("a,c最大,为"+a); }else{ System.out.println("c最大,为"+c); } } }else{ // a <= b if (b>c){ if(a==b){ System.out.println("a,b最大,为"+a); }else{ System.out.println("b最大,为"+b); } }else{ // b<=c if (b==c) { System.out.println("b,c最大,为"+b); }else{ System.out.println("c最大,为"+c); } } } } } }
if-else 的简化
- 如果if或者else的语句块只有一个语句,可以省略大括号。
- 当else语句中存在if语句时,可以简写成 else if (条件) 的形式
if (boolean值)
if 语句块
else
else 语句块
if (boolean值) {
if 语句块
} else if (boolean值) {
if 语句块
} else {
else 语句块
}
public class OneStatementIfElse { public static void main(String[] args) { int a = 10; System.out.println("省略大括号"); if (a > 0) System.out.println("a大于0"); else System.out.println("a小于等于0"); System.out.println("比较大小的完整的写法"); if (a > 0) { System.out.println("a大于0"); } else { if (a == 0) { System.out.println("a等于0"); } else { System.out.println("a小于0"); } } System.out.println("比较大小的省略所有大括号的方法"); if (a > 0) System.out.println("a大于0"); else if (a == 0) System.out.println("a等于0"); else System.out.println("a小于0"); System.out.println("比较大小的代码块有多个语句的最优写法"); if (a > 0) { System.out.println("a大于0"); System.out.println("买" + a + "个肉包子。"); } else if (a == 0) { System.out.println("a等于0"); System.out.println("不买肉包子了。"); } else { System.out.println("a小于0"); System.out.println("肉包子吃多了。"); } } }
简化求最大数的程序
public class IfElseNestSimple { public static void main(String[] args) { int a = 10; int b = 99; int c = 99; System.out.println("a=" + a + ". b=" + b + ". c=" + c + "."); if (a == b && b == c) { System.out.println("a,b,c等大。"); } else if (a > b && a > c) { System.out.println("a最大,为" + a); } else if (b > a && b > c) { System.out.println("b最大,为" + b); } else if (c > a && c > b) { System.out.println("c最大,为" + c); } else if (a == b && a > c) { System.out.println("a和b最大,为" + a); } else if (a == c && a > b) { System.out.println("a和c最大,为" + a); } else if (b == c && a < b) { System.out.println("b和c最大,为" + b); } } }