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%400==0||y%4==0&&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这部分的扣税是3000
0.2%
5000-3500 =1500这部分的扣税是15000.1%
3500以下的不扣税
张三的扣税总额= 500
0.3%+30000.2%+15000.1%

猜你喜欢

转载自www.cnblogs.com/sjz123/p/12507193.html