java的三个分支_java——多分支语句

  • Post author:
  • Post category:java


回顾:

一、输入一个年份,判断是不是闰年?

条件:

1、能被400整除

2、(1)能被4整除,但是(2)不能被100整除

逻辑表达式:

1||(1)&&(2)

Scanner sc = new Scanner(System.in);

System.out.println(“input a year:”);

int y = sc.nextInt();

if(y%4000||y%40&&y%100!=0){

System.out.println(“是闰年”);

}

else{

System.out.println(“不是闰年”);

}

职教云活动1:

输入你的出生年份,判断你10岁那一年,是不是闰年?

二、输入一个数,判断其是不是水仙花数。

条件:

1、是个三位数

2、每个位上面的数的立方和==本身

Scanner sc = new Scanner(System.in);

System.out.println(“input a num:”);

int n = sc.nextInt();

int g = n%10;

int s = n/10%10;

int b = n/100%10;

if(ggg+sss+bbb==n){

System.out.println(“水仙花数”);

}else{

System.out.println(“不是”);

}

职教云活动2:

输入一个数,判断其是不是玫瑰花数。

条件:

1、是个四位数

2、各位上的数字的四次方之和等于本身

if的三种语法:

1、单分支

if(条件){ } //注意:当{ }只有一句话的时候,可以省略花括号,但是一般不省略。

2、双分支

if(条件){ }

else{ }

3、多分支

(挨个判断,遇到第一个满足的则执行,后面的就不再判断)

if(条件1){

}else if(条件2){

}else if(条件3){

}…

else if(条件n){

}else{

}

如果前面的所有条件已经涵盖了各种情况,

则这里的else可以没有。

例1、输入一个成绩,判断其等级。

90以上A

80-89 B

70-79 C

70以下 D

Scanner sc = new Scanner(System.in);

System.out.println(“input a score:”);

int n = sc.nextInt();

if(n>=90){

System.out.println(“A”);

}else if(n>=80){

System.out.println(“B”);

}else if(n>=70){

System.out.println(“C”);

}else{

System.out.println(“D”);

}

职教云活动3:

输入一个年龄,判断这个年龄是老年,中年,青年,小孩。

65岁以上 老年

40-64 中年

18-39 青年

18岁以下 小孩

问题: 多个if和if-else if-else的区别?

1- 多个if 不管你前面ture与否后面的都执行,每个if都是一个孤岛

(一堆人纵向排,就算是找到了你的人,其余的人也都得路过)

2- else if 如果前面的有一个成立 那么后面的都不执行,是一个team

(一堆人横向排,从左到右找到了你的人,其余的人就不用管了)

举例说明:

Scanner sc = new Scanner(System.in);

System.out.println(“input a score:”);

int n = sc.nextInt();

if(n>=90){

System.out.println(“A”);

}

if(n>=80){

System.out.println(“B”);

}

if(n>=70){

System.out.println(“C”);

}

if(n<70){

System.out.println(“D”);

}

上面程序的运行结果:

input a score:

91

A

B

C

分析:因为这几个if没有任何关联,只是挨个执行。

如果用这种方式,必须改成:

Scanner sc = new Scanner(System.in);

System.out.println(“input a score:”);

int n = sc.nextInt();

if(n>=90){

System.out.println(“A”);

}

if(n<90&&n>=80){

System.out.println(“B”);

}

if(n<80&&n>=70){

System.out.println(“C”);

}

if(n<70){

System.out.println(“D”);

}

虽然实现了功能,但是每个if都得过,判断成本提高了。

职教云活动4:

输入月工资金额,算出扣税金额。

规则: 工资3500及以下,扣税0

工资3500-5000之间,扣税0.1%

工资5000-8000之间,扣税0.2%

工资8000-10000之间,扣税0.3%

工资10000以上,扣税0.4%

例如:张三工资8500,扣税过程如下

8500-8000 =500 这部分的扣税是 5000.3%

8000-5000 =3000这部分的扣税是30000.2%

5000-3500 =1500这部分的扣税是15000.1%

3500以下的不扣税

张三的扣税总额= 5000.3%+30000.2%+15000.1%



版权声明:本文为weixin_39609650原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。