Day 4 分支结构
4.1 代码运行过程中常见的结构
1. 顺序结构:代码从左到右,自上而下的基本运行原则
2. 分支结构:代码满足不同的条件,执行不同的结果
3. 循环结构:代码存在多次执行的情况
4.2 分支结构
4.2.1 if 分支结构
1. 语法结构:
if () {
}
2. 执行流程:
当代码运行到if结构时,首先执行条件判断,条件判断的结果是一个boolean数据类型,条件判断为true时,执行语句体;为false时,此if结构执行结束
最终跳到该if结构大括号外的语句中去
3. 限制:
if分支结构只能处理满足条件的情况,当条件不满足时,没有相应的处理语句
class Demo3 {
public static void main(String[] args) {
char ch = 'A';
if (ch >= 'A' && ch <= 'Z') {
System.out.println("这是一个大写英文字母");
System.out.println("字母为 :" + ch);
}
System.out.println("大括号之外的语句");
}
}
class Demo4 {
public static void main(String[] args) {
char ch = 'a';
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
System.out.println("这是一个英文字母");
}
System.out.println("if大括号之外的代码");
}
}
class Practise1 {
public static void main(String[] args) {
int year = 2000;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println(year + "年是闰年");
}
System.out.println("if大括号之外的代码");
}
}
4.2.2 if else 分支结构
1. 语法结构:
if () {
} else {
}
2. 执行流程:
代码执行到if else分支结构时,首先执行if之后的条件判断,条件判断的结果是一个boolean数据类型,条件判断为true时,执行true语句体;为false时,执行false语句体
程序员的孤独:世界上最遥远的距离是我在if里,你在else里
class Demo5 {
public static void main(String[] args) {
double salary = 10000.0;
if (salary > 5000) {
System.out.println("我为祖国做贡献");
} else {
System.out.println("同志尚需努力");
}
}
}
class Demo6 {
public static void main(String[] args) {
boolean haveGrilFriend = true;
if (haveGrilFriend) {
System.out.println("奶茶买一送一");
} else {
System.out.println("路见不平一声吼,你还没有女朋友");
}
}
}
4.2.3 if else if 分支结构
1. 语法结构:
if () {
} else if () {
} else if () {
} else {
}
2. 执行流程:
代码运行到if else if分支结构时,从上至下,匹配if之后小括号里的内容,条件匹配成功,执行对应的处理方式,并结束此分支结构,如果所有的条件判断都不满足,则执行else语句,并结束此分支结构
3. 注意:
else if没有个数限制,可以有多个
class Demo9 {
public static void main(String[] args) {
int money = 60;
if (money >= 100 && money <= 1000) {
System.out.println("铜牌会员");
} else if (money > 1000 && money <= 5000) {
System.out.println("银牌会员");
} else if (money > 5000 && money <= 10000)
System.out.println("金牌会员");
} else if (money > 10000 && money <= 50000) {
System.out.println("钻石会员");
} else if (money > 50000) {
System.out.println("黑钻会员");
} else {
System.out.println("非会员");
}
}
}
4.2.4 补充知识点【Scanner】
1. Scanner用法:现阶段粘贴复制就行
作用:给程序提供一种方式,用于接收用户输入的数据
使用流程:Scanner是Java中提供的用于从控制台输入数据到代码中的一种方式
2. 点技能点:Java中没有直接使用Scanner的能力,官方操作【导包】
固定格式: import java.util.Scanner;
放在class代码的上一行
3. 需要一个所谓Scanner的“变量”
固定格式: Scanner sc = new Scanner(System.in);
4. 选择执行对应数据类型的对应方法
获取 int 类型的变量: sc.nextInt();
获取 float 类型的变量: sc.nextFloat();
获取 double 类型的变量: sc.nextDouble();
获取 char 类型的变量: sc.nextLine().charAt(0);
5. 【友好性提示】
我们写代码的时候要站在用户的角度来思考问题。用户在进行操作时,需要给与用户足够的提示和引导,告诉用户当前操作应该如何完成,即考虑代码的友好性!
用户粘性问题!!用户提示!!用户友好性!!
6.【用户输入数据合法性判断】
当用户输入数据后,需要对其的数据进行合法性的判断,因为即使有提示用户输入的数据范围,但是也存在用户输入不合法数据的情况。
import java.util.Scanner;
class Demo8 {
public static void main(String[] args) {
float Score = 0.0F;
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的成绩(1~100) :");
Score = sc.nextFloat();
if (Score > 100 || Score < 0) {
System.out.println("输入数据不合法!");
System.exit(0);
}
if (Score >= 90) {
System.out.println(Score + "分" + " 优秀");
} else if (Score >= 80) {
System.out.println(Score + "分" + " 优良");
} else if (Score >= 70) {
System.out.println(Score + "分" + " 中等");
} else if (Score >= 60) {
System.out.println(Score + "分" + " 及格");
} else if (Score >= 0) {
System.out.println(Score + "分" + " 不及格");
}
}
}
4.3 总结
分支结构用于处理代码中出现的一些需要条件判断,并且按条件对应处理的情况
1. 数据类型选择
2. 条件约束考虑清楚
3. 处理的过程考虑清楚