Java中if...else结构的嵌套使用以及练习

if…else结构的嵌套使用以及练习

在if的语句块中,或者是在else语句块中,又包含了另外一个条件判断(可以是单分支、双分支、多分支),就构成了嵌套结构。

执行的特点:

​ (1) 如果是嵌套在if语句块中的,只有当外部的if条件满足,才会去判断内部的条件

​ (2) 如果是嵌套在else语句块中的,只有当外部的if条件不满足,进入else后,才会去判断内部的条件

从开发经验上讲,没有写过超过三层的嵌套if-else结构

注意:如果if-else中的执行语句块中只有一行执行语句,则此执行语句执行所在的一对{ }可以省略,但是不建议省略。

/*
	案例:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。
*/
public class IfElse{
    public static void main(String[] args){
        int num1 = 5;
        int num2 = 8;
        int num3 = 12;
        int max;
        if(num1>=num2){
            if(num3>num1){
                System.out.println("num2,num1,num3");
            }else if(num3<num1){
                if(num3>num2){
                    System.out.println("num2,num3,num1");
                }else{
                    System.out.println("num3,num2,num1");
                }
            }
        }else if(num1<num2){
            if(num3>num2){
                System.out.println("num1,num2,num3");
            }else if(num3 < num2){
                if(num3 > num1){
                    System.out.println("num1,num3,num2");
                }else{
                    System.out.println("num3,num1,num2");
                }
            }
        }
    }
}
练习题

练习1:

//对下列代码,若有输出,指出输出结果。
int x = 4;
int y = 1;
if (x > 2) {
       if (y > 2) 
            System.out.println(x + y);
       		System.out.println("atguigu");
} else
       System.out.println("x is " + x);
//输出atguigu   因为if省略掉了{},所以只有一条执行语句,所以输出System.out.println("atguigu");

练习2:

boolean b = true;
//如果写成if(b=false)能编译通过吗?如果能,结果是?    //能 结果是c
if(b == false) 	 //建议:if(!b)
	System.out.println("a");
else if(b)
	System.out.println("b");      //输出b
else if(!b)
	System.out.println("c");
else
	System.out.println("d");

练习3:

定义两个整数,分别为small 和 big,如果第一个整数small大于第二个整数big,就交换。输出显示small和big变量的值。

public class MaxValue{
    public static void main(String[] args){
        int small = 5;
        int big = 2;
        int temp;
        if(small >  big){
            temp = small;
            small = big;
            big = temp;
            System.out.println(small+","+big);
        }else
            System.out.println(small+","+big);
    }
}

**练习4:**小明参加期末Java考试,通过考试成绩,判断其Java等级,成绩范围[0,100]

  • 90-100 优秀
  • 80-89 好
  • 70-79 良
  • 60-69 及格
  • 60以下 不及格
//方法一:
public class JavaTest{
    public static void main(String[] args){
        int score = 88;
        if(score>=90&&score<=100){
            System.out.println("优秀");
        }else if(score>=80&&score<90){
            System.out.println("好");
        }else if(score>=70&&score<80){
            System.out.println("良");
        }else if(score>=60&&score<70){
            System.out.println("及格");
        }else
            System.out.println("不及格");
        }
}
//方法二:
public class JavaTest{
    public static void main(String[] args){
        int score = 88;
        if(score>=90&&score<=100){
            System.out.println("优秀");
        }else if(score>=80){
            System.out.println("好");
        }else if(score>=70){
            System.out.println("良");
        }else if(score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
    }
}

**练习5:**编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!”

class addTest{
    public static void main(String[] args){
        int a = 30;
        int b = 23;
        int add = a + b;
        if(add>=50){
            System.out.println("Hello World");
        }
    }
}

**练习 6:**编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。

class AddTest2{
    public static void main(String[] args){
        double d1 = 12.1;
        double d2 = 22.6;
        if(d1 > 10.0 && d2 < 20.0){
            double d3 = d1 + d2;
            System.out.println(d3);
        }else{
            double d4 = d1 * d2;
            System.out.println(d4);
        }
    }
}

**练习7:**判断水的温度

如果大于95℃,则打印“开水”;

如果大于70℃且小于等于95℃,则打印“热水”;

如果大于40℃且小于等于70℃,则打印“温水”;

如果小于等于40℃,则打印“凉水”。

public class water{
    public static void main(String[] args){
        int waterTemperature = 88;
        if(waterTemperature > 95){
            System.out.println("开水");
        }else if(waterTemperature > 70 && waterTemperature =< 95){
            System.out.println("热水");
        }else if(waterTemperature > 40 && waterTemperature =< 70){
            System.out.println("温水");
        }else if(waterTemperature <= 40){
            System.out.println("凉水");
        }
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值