JavaDay04分支语句-if-switch

Java中的语句分类

1
2
3
4
5
顺序语句
代码从上向下依次执行
分支语句
有多个选择,但是只能选择一条进行执行
循环语句

分支语句(重点,重点,重点)

作用

判断

分支语句的分类

1
2
if
switch

if(重点)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
1,基本的if语句
语法:
if(条件表达式){
当条件表达式值为true时,执行的代码
}
案例:
去网吧上网,年龄大于等于18岁,显示欢迎来自艾欧尼亚的最强王者
思路:
1,定义一个变量记录年龄
int age = 21;
2,判断年龄是否大有等于18
if(age >= 18){
2.1:大于等于18,欢迎来自艾欧尼亚的最强王者
System.out.println("欢迎来自艾欧尼亚的最强王者");
}
2,if else语句
语法:
if(条件表达式){
当条件表达式值为true时,执行的代码
}else{
当条件表达式值为false时,执行的代码
}
案例:
去网吧上网,年龄大于等于18岁,显示欢迎来自艾欧尼亚的最强王者
如果年龄小于18岁,显示悄悄告诉你旁边有个黑网吧
思路:
1,定义一个变量记录年龄
int age = 21;
2,判断年龄是否大有等于18
if(age >= 18){
2.1:大于等于18,欢迎来自艾欧尼亚的最强王者
System.out.println("欢迎来自艾欧尼亚的最强王者");
}else{
2.2:小于18
System.out.println("悄悄告诉你旁边有个黑网吧");
}
3,else if语句
语法:
if(条件表达式1){
当条件表达式1为true时,执行此处代码
}else if(条件表达式2){
当条件表达式2为true时,执行此处代码
}else if(条件表达式3){
当条件表达式3为true时,执行此处代码
}
...
else if(条件表达式n){
当条件表达式n为true时,执行此处代码
}else{
当以上条件都不满足,执行此处代码
}
注意:
else if可以有多个,也可以没有
else可有可无
案例:
案例:
去网吧上网,年龄大于等于18岁并且小于等于80,显示欢迎来自艾欧尼亚的最强王者
如果年龄小于18岁大于等于0,显示悄悄告诉你旁边有个黑网吧
大于80小于120:老爷子回家逗孩子吧
大于120:给博物馆打电话
小于0:准备报警
代码:
int age = 230;
if(age < 0){
System.out.println("报警");
}else if(0 <= age && age < 18){
System.out.println("悄悄告诉你旁边有个黑网吧");
}else if(18 <= age && age <= 80){
System.out.println("欢迎来自艾欧尼亚的最强王者");
}else if(80 < age && age < 120){
System.out.println("老爷子回家逗孩子吧");
}else if(age > 120){
System.out.println("给博物馆打电话");
}else{
System.out.println("年龄等于120");
}

4,if的嵌套
在if大括号中可以使用if
案例:
去超市购物,满200打8折,会员在打8折,不满200,是会员打8折,不满200,不是会员不打折
思路:
1,定义一个变量记录消费金额
double money01 = 230;
2,定义一个变量记录是否为会员
String isVIP = "是";
3,判断消费金额是否大于等于200
if(money01 >= 200){
3.1:大于等于200
3.1.1:计算折后金额
double money02 = money01 * 0.8;
3.1.2:判断是否为会员
if(isVIP.equals("是")){
3.1.2.1:是会员
使用3.1.1计算的金额,在打8折
double money03 = money02 * 0.8;
输出最终金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money03+",本次优惠金额:"+(money01-money03));
}else{
3.1.2.2:不是会员
输出3.1.1计算的金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money02+",本次优惠金额:"+(money01-money02));
}
}else{
3.2:小于200
3.2.2:判断是否为会员
if(isVIP.equals("是")){
3.2.2.1:是会员
使用1的金额,在打8折
double money02 = money01 * 0.8;
输出最终金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money02+",本次优惠金额:"+(money01-money02));
}else{
3.2.2.2:不是会员
输出1的金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money01+",本次优惠金额:"+(money01-money01));
}
}


总结
语法:
if(条件表达式1){
当条件表达式1为true时,执行此处代码
}else if(条件表达式2){
当条件表达式2为true时,执行此处代码
}else if(条件表达式3){
当条件表达式3为true时,执行此处代码
}
...
else if(条件表达式n){
当条件表达式n为true时,执行此处代码
}else{
当以上条件都不满足,执行此处代码
}
注意:
else if可以有多个,也可以一个没有
else可有可无
在if语句的大括号中可以使用if语句
有if才会有else if或else

switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
语法:
switch(变量){
case 常量1:
当变量值等于常量1时,执行此处代码
break;
case 常量2:
当变量值等于常量2时,执行此处代码
break;
...
case 常量n:
当变量值等于常量n时,执行此处代码
break;
default:
当变量值不等于以上常量时执行此处代码
break;
}

if与switch的区别

1
2
3
4
5
6
7
if可以判断区间,也可以判断值是否相同
if代码结构稍微有一点混乱

switch只能判断值是否相同
switch的语法稍微简单一些
switch的执行效率稍微高于if
switch的变量只能是基本数据类型或String,而且String是在jdk1.5及以后才支持

局部变量

1
2
3
概念:在方法中声明的变量,就是局部变量
注意:
1,同一个作用域下,局部变量不能重名

开发工具

1
2
3
4
作用:提高书写代码的效率
Java的开发工具
Eclipse(1阶段用)
IDEA(2,3,4阶段用)

案例

1,if嵌套的案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;

public class ifDeQianTao {

public static void final_price() {
Scanner in = new Scanner(System.in);
ifDeQianTao idt = new ifDeQianTao();
System.out.println("输入实付金额");
int price01 = in.nextInt();
int pricestart = price01;
if(price01>=200) {
price01 *= 0.8;
if (idt.isVIP()) {
price01 *= 0.8;
System.out.println("应付"+pricestart+",实付"+price01);
}else {
System.out.println("应付"+pricestart+",实付"+price01);
}
}else if (idt.isVIP()) {
price01 *=0.8;
System.out.println("应付"+pricestart+",实付"+price01);
}else {
System.out.println("应付"+pricestart+",实付"+price01);
}

}

public boolean isVIP() {
Scanner in = new Scanner(System.in);
System.out.println("是否为会员");
String vip = in.next();
if(vip.equals("是")){
return true;
}else {
return false;
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
final_price();
}

}

2,小程序助你破产项目
思路:
1)欢迎来到小程序助你破产
2)提示用户可选择的节日有
元旦
春节
元宵

3)提示用户输入对应的节日编号
4)根本编号打印输出应该送的礼物,如果没有对应的节日,输出暂无录入该节日

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Scanner;

public class smallPoChan {

public void PoChan(){
Scanner in = new Scanner(System.in);
System.out.println("欢迎来到小程序助你破产");
System.out.println("可选择\n1.元旦\n2.春节\n3.元宵\n4.儿童节\n5.七夕");
System.out.println("请输入\n-------------------");
int key = in.nextInt();
switch (key) {
case 1:
System.out.println("元旦快乐");
break;
case 2:
System.out.println("春节快乐");
break;
case 3:
System.out.println("元宵快乐");
break;
case 4:
System.out.println("儿童节快乐");
break;
case 5:
System.out.println("七夕快乐");
break;
default:
System.out.println("未找到此节目");
break;
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
smallPoChan spc = new smallPoChan();
spc.PoChan();
}

}

3,快递员没有送货量,评级
050:开除
50
150:扣款
1501000:正常薪资
1000
1500:奖励500
1500+:奖励1000

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Scanner;

/**
* 快递员没有送货量,评级
0~50:开除
50~150:扣款
150~1000:正常薪资
1000~1500:奖励500
1500+:奖励1000
* @author fritz1u
*
*/
public class kuaiDi {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int num = in.nextInt();
if ( num>=0 && num<50 ) {
System.out.println("开除");
}else if (num <150) {
System.out.println("扣款");
}else if (num<1000) {
System.out.println("正常薪资");
}else if (num<1500) {
System.out.println("奖励500");
}else if (num>1500) {
System.out.println("奖励1000");
}

}

}

6,判断季节的案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;

public class lianxi04 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("输入");
int num = in.nextInt();
if (num == 2|num == 3|num == 4) {
System.out.println("春");
}else if (num == 5|num == 6|num == 7|num == 8|num == 9) {
System.out.println("夏");
}else if (num == 10) {
System.out.println("秋");
}else if (num == 11|num == 12|num == 1) {
System.out.println("冬");
}else {
System.out.println("error");
}
}

}