1.流程控制
概述:
1.1)流程控制语句分类:
①顺序结构:
②分支结构:if,swich
③循环结构:for,while,do...while)
1.2)顺序结构:是指程序中最简单最基本的流程控制。没有特定的语法结构,按照代码先后顺序依次执行。程序中大多数的代码都是这样执行的。
顺序结构执行流程:就是从上往下依次执行。
/*
顺序语句
*/
public class OrderDemo {
public static void main(String[] args){
System.out.println("你好~");
System.out.println("今天天气很不错~");
System.out.println("希望你有一个美好的一天~");
System.out.println("再见~");
}
}
DOS命令提示符窗口
C:\Users\Apple>
D:\>javac OrderDemo.java
D:\>java OrderDemo
你好~
今天天气不错~
希望你有一个美好的一天~
再见~
D:\>
2.if语句
2.1)if语句格式1
2.1.1)格式:
if(关系表达式){
语句体;
}
2.1.2)执行流程:
①首先计算关系表达式值
②如果关系表达式的值为true,就执行语句体
③如果关系表达式的值为false,就不执行语句体
④继续执行后面的语句内容
/*
if语句格式1
格式:
if(关系表达式){
语句体;
}
执行流程:
1.首先计算关系表达式值
2.如果关系表达式的值为true,就执行语句体
3.如果关系表达式的值为false,就不执行语句体
4.继续执行后面的语句内容
*/
public class IfDemo {
public static void main(String[] args){
System.out.println("start");
//定义变量
int a = 10;
int b = 20;
//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
if(a == b){
System.out.println("a等于b");
}
System.out.println("over");
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac IfDemo.java
D:\>java IfDemo
start
over
D:\>
2.2)if语句2
2.2.1)格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
2.2.2)执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
/*
If语句
格式2:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
1:首先计算关系表达式的值
2:如果关系表达式的值为true,就执行语句体1
3:如果关系表达式的值为false,就执行语句体2
4:继续执行后面的语句内容
*/
public class IfDemo02{
public static void main(String[] args){
System.out.println("start");
//定义两个变量
int a = 10;
int b = 20;
/*
需求:判断a 是否大于b,如果是,在控制台输出:a的值大于b,如果不是。
在控制台输出a不大于b
*/
if(a > b){
System.out.println("a的值大于b");
}else{
System.out.println("a的值不大于b");
}
System.out.println("over");
System.out.println("start2");
//更改变量
b = 5;
//判断:
if(a > b){
System.out.println("a的值大于b");
}else{
System.out.println("a的值不大于b");
}
System.out.println("end");
}
}
DOS命令提示符窗口
C:\Users\Apple>
D:\>javac IfDemo02.java
D:\>java IfDemo02
start
a的值不大于b
over
start2
a的值大于b
end
D:\>
执行流程:
关系表达式 👉(true) 👉 语句体1 👉 其他语句
👉(false)👉 语句体2 👉 其他语句
2.3)案例:奇偶数
需求:任意给出一个整数,并在控制台输出给出一个整数,请用程序实现判断该整数是奇数还是偶数。
分析:
①:为了体现任意给出一个证书,采用家农安输入一个数据
使用键盘录入功能需要导包
import java.util.Scanner;
创建对象
Scanner sc = new Scanner(System.in);
接收数据
int number = sc.nextInt();
②:判断整数时偶数还是奇数要分两种情况进行判断,使用if…else结构
if (){
表达式1
}else{
表达式2
}
③判断是否是偶数需要使用取余运算符实现该功能number%2 == 0
if (number % 2 == 0){
}else{
}
④:根据判定情况,在控制台输出对应的内容
if (number & 2 == 0){
System.out.println(number + "是偶数");
}else{
Sysrem,out.println(number + "是奇数");
}
/*
需求:任意给出一个整数,并在控制台输出给出一个整数,
请用程序实现判断该整数是奇数还是偶数。
*/
import java.util.Scanner;
public class IfDemoTest1{
public static void main(String[] args){
//为了体现任意给出一个整数,采用键盘录入一个数据,(导包,创建对象,接收数据)
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
/*
判断整数时偶数还是奇数要分两种情况进行判断,使用if…else结构;
判断是否是偶数需要使用取余运算符实现该功能number%2 == 0;
根据判定情况,在控制台输出对应的内容
*/
if (number % 2 == 0){
System.out.println(number + "偶数");
}else{
System.out.println(number + "奇数");
}
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac IfDemoTest1.java
D:\>kava IFdemoTest1
请输入一个整数:
88
88偶数
D:\>javac IfDemoTest1.java
D:\>kava IFdemoTest1
请输入一个整数:
99
99奇数
D:\>
2.4)if语句3
2.4.1)格式:
if(关系表达式){
语句体1;
}else if(关系表达式2){
语句体2;
}
…
else{
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true,就执行语句1;如果值为false,就计算表达式2的值。
③如果关系表达式2的值为true,就执行语句2;如果关系表达式2的值为false就计算关系表达式3的值
④……
⑤如果没有任何关系表达式为true,就执行语句体 n+1 。
/*
if语句3
格式:
if(关系表达式1){
语句体1;
} else if(关系表达式){
语句体2;
}
……
else{
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true,就执行语句1;如果值为false,就计算表达式2的值。
③如果关系表达式2的值为true,就执行语句2;如果关系表达式2的值为
false就计算关系表达式3的值
④……
⑤如果没有任何关系表达式为true,就执行语句体 n+1 。
*/
import java.util.Scanner;
public class IfDemo03{
public static void main(String[] args){
System.out.println("start");
/*需求:键盘录入一个星期数(1,2,3,4,5,6,7),
输出对应的星期一,……星期日
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
if(week == 1){
System.out.println("星期一");
}else if(week == 2){
System.out.println("星期二");
}else if(week == 3){
System.out.println("星期三");
}else if(week == 4){
System.out.println("星期四");
}else if(week == 5){
System.out.println("星期五");
}else if(week == 6){
System.out.println("星期六");
}else if(week == 7){
System.out.println("星期天");
}
System.out.println("end");
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac IfDemo03.java
D:\>java IfDemo03
start
请输入一个星期数(1-7):
5
星期五
end
D:\>
2.5)案例:考试奖励
需求:小明快要期末考试了,小明爸爸对他说,会根据不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:
①小明考试成绩未知,可以使用键盘录入的方式获取数值,使用键盘录入功能需要导包,创建对象,接收数据。
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
②由于奖励种类较多,属于多种判断,采用if…else…if格式来实现
if( ){
}else if(){
}else if(){
}else{
}
③为每种判断设置对应的条件
if(score >= 95 && score <= 100){
System.out.println("自行车");
}else if(score >= 90 && score <= 94){
System.out.println("游乐场");
}else if(score >= 80 && score <= 89){
System.out.println("变形金刚");
}else if(score >=79){
System.out.println("胖揍一顿");
}
/*
需求:小明快要期末考试了,小明爸爸对他说,会根据不同的考试成绩,送他不同的礼物,
假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
奖励:
95-100 自行车
90-94 游乐场1次
80-89 变形金刚玩具
80以下 胖揍一顿
*/
import java.util.Scanner;
public class IfDemoTest2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个分数:");
int score = sc.nextInt();
/*
if(score >= 95 && score <= 100){
System.out.println("自行车一辆");
}else if(score >= 90 && score <= 94){
System.out.println("游乐场1次");
}else if(score >= 80 && score <= 89){
System.out.println("变形金刚玩具1个");
}else{
System.out.println("胖揍一顿");
}
如果是这样写的话, 不够严谨,若输入数字120,得出的结论也会是胖揍一顿
*/
//数据测试:正确数据,边界数据,错误数据
if(score > 100 || score < 0){
System.out.println("你输入的数字有误");
}else if(score >= 95 && score <= 100){
System.out.println("自行车一辆");
}else if(score >= 90 && score <= 94){
System.out.println("游乐场1次");
}else if(score >= 80 && score <= 89){
System.out.println("变形金刚玩具1个");
}else{
System.out.println("胖揍一顿");
}
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac IfDemoTest2.java
D:\>java IfDemoTest2
请输入一个分数:
79
胖揍一顿
D:\>java IfDemoTest2
请输入一个分数:
99
自行车一辆
D:\>java IfDemoTest2
请输入一个分数:
139
你输入的数字有误
3.switch语句
3.1)格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
格式说明:
①表达式:取值为byte、short、int、char、JDK5以后是可以枚举,JDK7以后是可以String
②case:后面跟的是要和表达式进行比较的值。
③break:表示中断,结束的意思,用来结束switch语句。
④default:表示多有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
执行流程:
表达式 👉 值1 👉 语句体1 👉 break 👉 其他语句
如果不相等,就与值2 比较,若与值2相等就执行值2的break语句、若是与case值都不相等,则执行default的语句。
/*
switch语句
格式:
switch(表达式){
case值1;
语句体;
break;
case值1:
语句体2;
bereak;
…
default;
语句体n+1;
[break;]
}
格式说明:
表达式,取值byte、short、int、char、JDK5以后是可以枚举,
JDK7以后是可以String
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示多有情况都不匹配的时候,就执行该处的内容,
和if语句的else相似
执行流程:
首先计算表达式的值。
依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,
遇到break就会结束。如果所有的case后面的值和表达式的值都不匹配,
就会执行default里面的语句体,然后程序结束掉。
*/
import java.util.Scanner;
public class SwitchDemo{
public static void main(String[] args){
System.out.println("start");
//需求,键盘录入一个星期数(1,2..7),输出对应的星期一,星期二,。。。星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
switch(week){
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;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期七");
break;
default:
System.out.println("你输入的星期数有误!");
break;
}
System.out.println("end");
}
}
DOS命令提示符窗口
C:\Users\Apple>
D:\>javac SwitchDemo.java
D:\>java SwithDemo
start
请输入一个星期数(1-7):
5
星期五
end
D:\>java SwithDemo
start
请输入一个星期数(1-7):
9
你输入的星期数有误!
end
D:\>
3.2)案例:春夏秋冬
需求:一年有12个月,分属春夏秋冬四个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
分析:
3月 - 5月 春季、6月 - 8月夏季、9月 - 11月秋天、10月-1月冬季;
①键盘录入月份数据,使用变量接收
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
②多情况判断,这里采用switch语句实现
/*
案例:春夏秋冬
一年有12个月,分属春夏秋冬四个季节,键盘录入一个月份,
请用程序实现判断该月份属于哪个季节,并输出。
*/
import java.util.Scanner;
public class SwitchDemoTest{
public static void main(String[] args){
System.out.println("start");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份(1-12):");
int month = sc.nextInt();
switch(month){
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;
case 6:
System.out.println("夏季");
break;
case 7:
System.out.println("夏季");
break;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
default:
System.out.println("你输入的月份有错误!");
System.out.println("end");
}
}
}
DOS命令提示符窗口
C:\Users\Apple>
D:\>javac SwitchDemoTest.java
D:\>java SwitchDemoTest
start
请输入一个月份(1-12):
9
秋季
D:\>
*注:
①在default这里的break是可以省略的!
②假设,我在case的地方少了一个break的话,这时候会出现穿透。
假设:
case 2:
System.out.println("冬季");
case 3:
System.out.println("春季");
break;
这种事时候dos测试的时候输入2月,会得到冬季、春季、
这个就是case穿透
/*
案例:春夏秋冬
一年有12个月,分属春夏秋冬四个季节,键盘录入一个月份,
请用程序实现判断该月份属于哪个季节,并输出。
*/
import java.util.Scanner;
public class SwitchDemoTest2{
public static void main(String[] args){
System.out.println("start");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份(1-12):");
int month = sc.nextInt();
//case 穿透
switch(month){
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("你输入的月份有错误!");
System.out.println("end");
}
}
}
DOS命令提示符窗口
C:\Users\Apple>
D:\>javac SwitchDemoTest.java
D:\>java SwitchDemoTest
start
请输入一个月份(1-12):
9
秋季
D:\>
注意事项:在Switch语句中,如果case控制的语句体后面不屑break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体Switch语句结束。
本文详细介绍了Java中的流程控制,特别是分支结构的三种形式:if, switch及其使用场景。通过实例解析了if语句的不同形式和执行流程,包括单一if、if-else、if-else if-else结构,以及如何运用if判断实现奇偶数判断。同时,文章还探讨了switch语句的结构和执行过程,并提供案例展示了如何利用switch进行考试成绩奖励的判断。"
129750143,14843591,智能体协作新突破:MACC实现动态高效协同,"['人工智能', '强化学习', '协作智能', '多智能体系统', '分布式学习']
963

被折叠的 条评论
为什么被折叠?



