1、分支结构
1.1 if...else if
练习1:测试商品打折案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24package cn.tedu.basic; import java.util.Scanner; /*测试商品打折案例*/ //需求:接收用户输入的商品原价,满10000打五折,满5000打八折,满2000打九折,低于2000原价 public class TestDiscount { //0.创建程序入口main函数 public static void main(String[] args) { //1.提示并接收用户输入原价 System.out.println("请输入商品原价:"); double price = new Scanner(System.in).nextDouble(); //2.定义一个变量用来保存实付的结果 double count = price;//注意count的初始值是商品的原价 //3.计算打折后的价格 if(price>=10000) {//10000以上打五折 count = price*0.5; }else if (price >=5000) { count = price*0.8; }else if (price>=2000) { count = price*0.9; } System.out.println("实付金额为:"+count); } }
练习2:统计学生分数的档位
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
55package cn.tedu.basic; import java.util.Scanner; /* *@author 学生:Q *@vesion :java1.8.131 *创建时间:2021年6月3日 上午11:48:18 */ /*本类用于判断班里10个学员分数的档位*/ public class TestScore { //0.创建程序入口main函数 public static void main(String[] args) { //1.提示并接收输入的学员分数 System.out.println("输入你的分数:"); int score = new Scanner(System.in).nextInt(); /*为了增强程序的健壮性,若用户输入的数据不符合规则,就结束*/ int i =1; int great = 0,best = 0,better = 0,good = 0,bad = 0; while(i<=10) {//班里10个人,判断每个人的成绩,完成后退出 if(score<0 || score>100) { System.out.println("输入非法,重新输入:"); score = new Scanner(System.in).nextInt(); } //2.判断分数分数的段位,并输出结果 if(score>=90) {//大于90优秀 System.out.println("优秀"); great++; }else if (score>=80 ) {//[80,90)良好 System.out.println("良好"); best++; }else if(score >=70) {//[70,80)较好 System.out.println("较好"); better++; }else if(score>=60) {//[60,70)及格 System.out.println("及格"); good++; }else {//小于60不及格 System.out.println("不及格"); bad++; }i++; if(i>10) { System.out.println("结束"); break;//break跳出循环,如果用return,整个程序就结束了且不输出结果 } System.out.println("输入下一个成绩:"); score = new Scanner(System.in).nextInt(); } System.out.println("10人中优秀的有:"+great+"个,"+"良好的有:"+best+"个,"+"较好的有:"+better+"个,"+ "及格的有:"+good+"个,"+"不及格的有:"+bad+"个,"); } }
1.2 switch...case
1).变量a的类型只支持byte、short、int、char、String类型
2).变量a的值会依次与case后的值作比较,若不加break ,会穿透所有case的输出值,包括 default输出值
3).switch 语句可以拥有多个 case 语句,每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
4).设置了default,当所有case分支都没有匹配到,就执行default下的输出值
5).break与default是可选项,根据具体业务需求决定是否添加
6).作用:判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束
该结构会有穿透现象,如果想每个分支都停止,就需要在每个分支后加break;
格式:
练习:每周要做的活动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package cn.tedu.basic; import java.util.Scanner; /*本类用于练习switch结构2*/ public class TestSwitch2 { public static void main(String[] args) { System.out.println("请确定今天是周几:"); //String d= "周四"; String d = new Scanner(System.in).nextLine(); switch(d) { case "周一":System.out.println("周一边晨跑边敲代码");break; case "周二":System.out.println("周二边俯卧撑边敲代码");break; case "周三":System.out.println("周三边仰卧起坐边敲代码");break; case "周四":System.out.println("周四敲代码");break; case "周五":System.out.println("周五边深蹲边敲代码");break; case "周六":System.out.println("周六边引体向上边敲代码");break; case "周日":System.out.println("周日边跳绳边敲代码");break; default:System.out.println("去睡觉"); } } }
2、循环结构
2.1 for循环
格式:
1、for循环创建思路和每个条件的功能:
1).开始条件:定义控制循环的循环变量,并给循环变量初始化
2).循环条件:限制循环变量的范围,控制循环何时结束
3).更改条件:控制循环变量的变化
2、for循环创建思路:从哪开始,到哪结束 ,如何变化
循环的执行情况是由三个条件共同控制的
3、循环一共执行几次怎么判断?
答:看循环变量可以取到的值一共有几个,有几个就执行几次
练习:打印100次slogon/打印0到10/打印10到0/打印8,88,888,8888
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
26package cn.tedu.basic; /*本类用于测试循环结构中的for循环*/ public class TestFor { public static void main(String[] args) { //需求:打印四次自己的宣言 /**格式:for(开始条件; 循环条件; 更改条件){符合循环条件执行的循环体}*/ for(int i = 1; i<=4;i++);{ System.out.println("又不是没那条件,干就完了"); } //需求:打印1-10 //for循环从哪开始:1,到哪里结束:10,如何变化:++ for(int j =1; j<=10;j++) { System.out.println(j); } //需求:打印10-1 //for循环从哪开始:10,到哪里结束:1,如何变化:-- for(int k = 10;k>=1;k--) { System.out.println(k); } //需求:8,88,888,8888 for(int i = 8;i<=8888;i=i*10+8) { System.out.print(i+","); } } }
练习2:求1-100的总和/偶数的和/偶数的个数
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
52package cn.tedu.basic; public class TestFor2 { public static void main(String[] args) { m1(); m2(); m3(); } /*需求:求出1-100以内的所有偶数的个数*/ private static void m3() { //1.定义变量用来保存偶数的个数 int count = 0; //2.创建循环,依次循环1-100范围内的数 for(int i = 1;i<=100;i++) { //3.过滤出来要统计个数的偶数 if(i%2 == 0) {//说明这是一个偶数 //4.对偶数的个数进行累计 count=count+1;//count++ } }//5.打印最终结果 System.out.println(count); } /*需求:求出1-100以内的所有偶数的和*///开始条件:2结束条件:100 改变条件: private static void m2() { //1.定义变量用来保存最终求和的结果 int sum = 0; //2.创建循环,依次循环1-100范围内的数 for(int i = 1;i<=100;i++) { //3.过滤出来需要累加的偶数 if(i%2 == 0) { // if(i%2 ==1 )过滤奇数 sum = sum +i; } }//4.打印最终计数结果 System.out.println(sum); } /*需求:求出1-100以内的所有数的和*/ private static void m1() { //1.定义一个变量用来保存求和的结果 int count = 0; //2.创建循环,依次循环1-100内的数 for(int i = 1;i<=100;i++) { //3.将本轮循环到的数字累加到最终的 结果中 count = count +i; }System.out.println(count); } }
2.2while循环/do...while循环
while格式:
do...while循环格式:
注意:死循环while(true){执行体1,执行体2...,break;},死循环一定要设置出口break
练习:猜数字案例:利用了调用方法和if-else if结构,包含while循环和do...while循环
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
63package cn.tedu.review; import java.util.Random; import java.util.Scanner; /*本类练习while循环和do-while循环*/ //需求:产生一个随机数,和用户一直输入的数字作比较直到用户猜对 public class TestWhile_DoWhile { //1-1.创建程序入口函数main()方法 public static void main(String[] args) { int r = createNum();//1-2.调用生成随机数的方法 //System.out.println(r); guessNumber1(r);//使用while循环猜数字 guessNumber2(r);//使用do-while循环猜数字 } //创建猜数字的方法2,练习do-while private static void guessNumber2(int r) { do { System.out.println("猜猜看:"); int input = new Scanner(System.in).nextInt(); //3.判断用户是否猜对(用猜的数字和随机数作比较) if(input>r) { System.out.println("猜大了!"); }else if(input<r) { System.out.println("猜小了!"); }else if(input == r) { System.out.println("猜对了!"); //猜对了就结束后面所有的轮数,利用break跳出循环 break;//注意:死循环一定要设置程序出口 } }while(true); } //创建猜数字的方法,练习while循环 private static void guessNumber1(int r) { //1.写一个死循环 while(true) {//死循环,注意:需要设置程序的出口 //2.提示并接收用户猜的数字 System.out.println("猜猜看:"); int input = new Scanner(System.in).nextInt(); //3.判断用户是否猜对(用猜的数字和随机数作比较) if(input>r) { System.out.println("猜大了!"); }else if(input<r) { System.out.println("猜小了!"); }else if(input == r) { System.out.println("猜对了!"); //猜对了就结束后面所有的轮数,利用break跳出循环 break;//注意:死循环一定要设置程序出口 } } } //创建一个让程序产生随机数的方法 private static int createNum() { //1-3.java.util.Random();注意导包,接收随机生成的数字 //参数100是自定义,表示生成随机数的范围时[0,100)包含0不包含100以内的数字 int random = new Random().nextInt(100); return random; } }
2.3三种循环的区别和应用场景:
- for:知道循环次数
- while/do while:当循环次数不确定时
- while:先判断,不符合规则,不执行代码
- do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
- 循环之间都可以互相替代,但是一般最好选择合适的循环结构来完成代码
3.嵌套循环
for循环嵌套的特点:
- 1.每外层循环执行一次,内层循环要执行多次
- 2.外层循环控制行数,内层循环控制列数
练习:99乘法表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15package cn.tedu.review; public class TestFor99Excel { public static void main(String[] args) { //需求:99乘法表 for(int i =1;i<=9;i++) {//外-行 for(int j =1;j<=i;j++) {//内-列 System.out.print(j+"*"+i+"="+(i*j)+"t ");//"t"表示制表符,控制格式整齐度 } System.out.println();//换行 } } }
4.break,continue和retrun的区别
1)continue:跳过本次循环,继续执行下一次循环
2)break: 跳出整个循环,往后不在执行此循环
3)return: 跳出整个循环,以及整个程序,停止运行
拓展: 多层嵌套for循环如何跳到最外层
不加任何代码,最里层的break,只能跳出最内层的循环, 如果想要跳出最外面的,就要新增一个标记.
在想要跳出循环的地方加标记,然后break标记.
同理换成continue 标记; 效果一样.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/** * 测试多重for循环 break */ public static void forTest() { int a = 3; tab: for (int i = 0; i < a; i++) { System.out.println("我是i...." + i); for (int j = 0; j < a; j++) { System.out.println("我是j...." + j); if (j == 1) { break tab; } } } }
最后
以上就是慈祥枕头最近收集整理的关于day04基础4-- 分支结构、循环结构、for嵌套循环1、分支结构2、循环结构3.嵌套循环4.break,continue和retrun的区别的全部内容,更多相关day04基础4--内容请搜索靠谱客的其他文章。
发表评论 取消回复