条件判断语句(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);
        }
    }
}
posted @ 2020-01-03 22:33  见嘉于世  阅读(2216)  评论(0编辑  收藏  举报