文章目录
【老韩b站视频笔记p103-p113】
1. 程序流程控制介绍
程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。
- 顺序控制
- 分支控制
- 循环控制
2. 顺序控制
2.1 定义
- 程序从上到下逐行执行,中间没有任何判断和跳转。
- java中定义变量时采用合法的前向引用。(先定义,再引用)
3. 分支控制if-else
3.1 介绍
让程序有选择的的执行,分支控制有三种
- 单分支 if
- 双分支 if-else
- 多分支 if-else if -…-else
3.2 单分支if
- 语法:
- 说明:
如果条件为TRUE,就会执行{}里的代码。为FALSE则不执行。
【特别说明:如果{}里只有一条语句,则可不写{},但建议写上{}】 - 流程图
- 案例
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责,送入监狱"
public class var01 {
//编写一个main方法
public static void main(String[] args) {
//思路分析
//1. 接收输入年龄,定义一个Scanner对象
//2. 把年龄保存到一个int age变量
//3. 使用if判断,输出对应信息。
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入年龄");
int age = myScanner.nextInt();
if(age > 18) {
System.out.println("你年龄大于18,要对自己的行为负责,送入监狱")
}
System.out.println("程序继续执行...")
}
}
3.3 双分支if-else
- 语法:
- 说明
当条件表达式成立,即执行代码块?,否则执行代码块2。
【如果执行代码块有一条语句,则{}可以省路,否则,不能省略】 - 流程图
- 案例
编写一个程序,可以输入人的年龄如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱’。否则,输出"你的年龄不大这次放过你了"。
public class var01 {
//编写一个main方法
public static void main(String[] args) {
//思路分析
//1. 接收输入年龄,定义一个Scanner对象
//2. 把年龄保存到一个int age变量
//3. 使用if-else判断,输出对应信息。
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入年龄");
int age = myScanner.nextInt();
if(age > 18) {
System.out.println("你年龄大于18,要对自己的行为负责,送入监狱")
} else {
System.out.println("你的年龄不大这次放过你了")
}
System.out.println("程序继续执行...")
}
}
- 单/双分支练习题:
(1.)
(输出:韩顺平教育~)
(2.) 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。
public class var01 {
//编写一个main方法
public static void main(String[] args) {
//思路分析:用单分支
double d1 = 34.5;
double d2 = 2.6;
if(d1 > 10.0 && d2 < 20.0) {
System.out.println("两数和=" + (d1 + d2));
}
}
}
.
(3.) 课后自己练】定义两个变量int,判断二者的和,是否能被3又能被5整除,打印提示信息
public class var01 {
//编写一个main方法
public static void main(String[] args) {
//思路分析:
//1. 定义num1。num2
//2. 定义sum = num1 + num2
//3. 判断sum%3,5是否=0
//4. 使用ifelse提示对应信息
int num1 = 10;
int num2 = 5;
int sum = num1 + num2;
if(sum % 3 == 0 && sum % 5 == 0) {
System.out.println("可以被3又能被5整除");
} else {
System.out.println("和不能同时被3和5整除");
}
}
}
}
.
(4.)判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除;(2)能被400整除
public class var01 {
//编写一个main方法
public static void main(String[] args) {
//思路分析:
//1. 定义年份int year
//2. (year%4==0 && year%100!=0) || year%400==0
int year = 2023;
if((year % 4 == 0 && year % 100 != 0) || year % 400 ==0) {
System.out,println(year + "是闰年");
} else {
System.out.println(year + "不是闰年");
}
}
}
3.4 多分支 if-else if -…-else
- 语法:
- 特别说明:
(1)多分支可以没有 else,,当所有的if 都不成立,则一个执行入口都没有。
(2)如果有else,如果所有的条件表达式都不成立,则默认执行else代码块。 - 流程图
- 案例
<1>输入保国同志的芝麻信用分: 如果:
- 信用分为100分时,输出信用极好;
- 信用分为(80,99]时,输出信用优秀;
- 信用分为[60,80]时,输出信用一般;
- 其它情况,输出信用不及格;
- 请从键盘输入保国的芝麻信用分,并加以判断;
public class RelationalOperator {
//编写一个 main 方法
public static void main(String[] args) {
//
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
//接收用户输入
System.out.println("请输入信用分");
int grade = myScanner.nextInt();
//4种条件用多分支
if(grade >= 1 && grade <= 100) {
if(grade == 100) {
System.out.println("信用极好");
} else if(grade > 80) {
System.out.println("信用优秀");
} else if(grade >= 60) {
System.out.println("信用一般");
} else {
System.out.println("信用不及格");
} else {
System.out.println("信用分需要在 1-100,请重新输入:)")
}
}
}
<2>
【b】
【b=T, 改成b=F,那么if的条件就是false, a不会输出。!b = True,输出c】
3.5 嵌套分支
- 介绍:
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。不要超过 3 层 (可读性不好)
- 语法:
- 案例:
参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。【可以 让学员先练习下】, 输入成绩和性别,进行判断和输出信息。
public class RelationalOperator {
//编写一个 main 方法
public static void main(String[] args) {
//思路分析
//1.
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入成绩");
double score = myScanner.nextDouble();
if(grade > 8.0) {
System.out.println("请输入性别");
char gender = myScanner.next().charAt(0);
if(gender == 'm'){
System.out.println("男子组决赛");
} else if(gender == 'f'){
System.out.println("女子组决赛");
} else {
System.out.println("性别输入错误")
}
} else {
System.out.println("不好意思你没进入决赛");
}
}
}
【将string转换为char的方法就是提取string的第一个字符.charAt(0): string.charAt(0)】
4. 练习
public class RelationalOperator {
//编写一个 main 方法
public static void main(String[] args) {
//思路分析
import java.util.Scanner;
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入月份数字");
int month = myScanner.nextInt();
if(age > 0 && (month >= 1 && month <= 12)) {
if(month >= 4 && month <= 10) {
System.out.println("请输入年龄");
int age = myScanner.nextInt();
if(age >= 18 && age <= 60){
System.out.println("票价60");
} else if(age < 18){
System.out.println("票价30");
} else {
System.out.println("票价20");
}
} else {
System.out.println("请输入年龄");
int age = myScanner.nextInt();
if(age >= 18 && age <= 60) {
System.out.println("票价40");
} else {
System.out.println("票价20");
}
} else {
System.out.println("输入有误");
}
}
}