目录
1 分支结构
1.1 概述
1.2 形式
1.3.1 练习:商品打折案例
1.3.2 练习: 统计学员得分段位案例
2 switch结构
2.1 概述
2.2 形式
2.3 练习:数字匹配
2.4 练习: Switch中的String类型
2.5 switch结构的注意事项
3 循环结构
3.1 for概述
3.2 for形式
3.3 for循环执行顺序
我们明明只写了一句打印语句,为什么打印了多个数字呢?希望通过下图帮你理解for循环的执行顺序: 3.4 练习:打印100次slogon/打印0到10/打印10到0/打印8,88,888,8888,
3.5 练习:求[1,100]以内元素之和,偶数之和,偶数个数
1 分支结构
1.1 概述
顺序结构的程序虽然能解决计算、输出等问题
但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构
1.2 形式
1.3.1 练习:商品打折案例
创建包: cn.tedu.basic
创建类: TestDiscount.java
需求: 接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折
package cn.tedu.basic;
import java.util.Scanner;
public class TestDiscount {
public static void main(String[] args) {
//1.提示用户输入原价
System.out.println("请输入商品原价:");
//2.接收用户输入的原价
double price = new Scanner(System.in).nextDouble();
//3.计算打折后的价格
//3.1定义变量用来保存打折后的价格
double count = price;//初始值是商品的原价
//3.2判断用户的打折段位并打折
if(price >= 5000) {//满5000
count = price *0.5;//打5折
}else if(price >= 2000) {//满2000
count = price * 0.8;//打折8折
}else if(price >= 1000) {//满1000
count = price *0.9;//打9折
}
// if(1000 <= price && price< 2000) {
// count = price *0.9;
// }else if(2000 <= price && price < 5000) {
// count = price * 0.8;
// }else if(price >= 5000) {
// count = price *0.5;
// }
//3.3输出用户实际支付的价格
System.out.println("您实际应该支付:"+count);
}
}
1.3.2 练习: 统计学员得分段位案例
package cn.tedu.basic;
import java.util.Scanner;
public class TestScore {
public static void main(String[] args) {
//1.提示并接收学员的分数
System.out.println("请输入你的分数:");
int score = new Scanner(System.in).nextInt();
if(score <0 || score >100 ) {
System.out.println("输入数据不合法,请重新输入!!!");
}else {
//2.判断分数的段位,并输出结果
if(score >= 90) {//大于90
System.out.println("优秀!");
//}else if(score>=80 && score <=89) {
}else if(score>=80) {//[80,90)
System.out.println("良好!");
}else if(score>=70) {//[70,80)
System.out.println("中等!");
}else if(score>=60) {//[60,70)
System.out.println("及格!");
}else {//小于60
System.out.println("不及格!");
}
}
}
}
2 switch结构
2.1 概述
2.1 概述
switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束
2.2 形式
2.3 练习:数字匹配
创建包: cn.tedu.basic
创建类: TestSwitch.java
package cn.tedu.basic;
public class TestSwitch {
//1.创建程序的入口函数main
public static void main(String[] args) {
//2.定义一个变量
int a = 19;
//3.完成switch结构的测试
switch(a) {
case 1 : System.out.println(1);break;
case 2 : System.out.println(2);break;
case 3 : System.out.println(3);break;
case 4 : System.out.println(4);break;
case 5 : System.out.println(5);break;
default : System.out.println(0);
}
}
}
2.4 练习: Switch中的String类型
使用类: TestSwitch.java
package cn.tedu.basic2;
public class TestSwitch2 {
public static void main(String[] args) {
String day = "星期五";
switch(day) {
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.5 switch结构的注意事项
switch 语句中的变量类型可以是: byte、short、int 、char、String(jdk1.7以后支持)
switch 语句可以拥有多个 case 语句
每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
当变量值与 case 语句值相等时,开始执行此case 语句的内容,执行完会判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后执行穿透所有case,包括default
switch 语句可以包含一个 default 分支,该分支一般是写在switch 语句的最后
如果在default之前的case有break,则default不会执行
3 循环结构
3.1 for概述
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它由循环体中的条件,判断继续执行某个功能还是退出循环。
根据判断条件,循环结构又可细分为先判断后执行的循环结构和先执行后判断的循环结构。
3.2 for形式
3.3 for循环执行顺序
我们明明只写了一句打印语句,为什么打印了多个数字呢?
希望通过下图帮你理解for循环的执行顺序:
3.4 练习:打印100次slogon/打印0到10/打印10到0/打印8,88,888,8888,
package cn.tedu.basic;
public class TestFor {
public static void main(String[] args) {
//需求:打印100次自己的宣言
//for(开始条件;循环条件;更改条件){循环体;}
for(int i = 1;i<=100;i++) {
System.out.println(“又不是没那条件,干就完啦!”);
}
//需求:打印0到10
//for(开始条件;循环条件;更改条件){循环体;}
//0 1 2 3 4 5 6 7 8 9 10
//从哪开始:0
//到哪结束:10
//怎么变化:+1 ++
for(int i = 0;i<=10;i++) {
System.out.println(i);
}
System.out.println("**********************");
//需求:打印10到0
//10 9 8 7 6 5 4 3 2 1 0
//从哪开始:10
//到哪结束:0
//怎么变化:-1 --
//for(开始条件;循环条件;更改条件){循环体}
for(int i = 10 ;i >= 0;i--) {
System.out.println(i);
}
//需求:打印8,88,888,8888,
//8 88 888 8888
//从何开始:8
//到哪结束:8888
//如何变化:*10+8
for(int i =8 ; i <= 8888 ; i=i*10+8) {
System.out.print(i+",");//使用的是print(),打印后不换行
}
}
}
希望通过下图帮你理解for循环的执行顺序:
3.4 练习:打印100次slogon/打印0到10/打印10到0/打印8,88,888,8888,
package cn.tedu.basic;
public class TestFor {
public static void main(String[] args) {
//需求:打印100次自己的宣言
//for(开始条件;循环条件;更改条件){循环体;}
for(int i = 1;i<=100;i++) {
System.out.println(“又不是没那条件,干就完啦!”);
}
//需求:打印0到10
//for(开始条件;循环条件;更改条件){循环体;}
//0 1 2 3 4 5 6 7 8 9 10
//从哪开始:0
//到哪结束:10
//怎么变化:+1 ++
for(int i = 0;i<=10;i++) {
System.out.println(i);
}
System.out.println("**********************");
//需求:打印10到0
//10 9 8 7 6 5 4 3 2 1 0
//从哪开始:10
//到哪结束:0
//怎么变化:-1 --
//for(开始条件;循环条件;更改条件){循环体}
for(int i = 10 ;i >= 0;i--) {
System.out.println(i);
}
//需求:打印8,88,888,8888,
//8 88 888 8888
//从何开始:8
//到哪结束:8888
//如何变化:*10+8
for(int i =8 ; i <= 8888 ; i=i*10+8) {
System.out.print(i+",");//使用的是print(),打印后不换行
}
}
}



