文章目录
概述
程序流程控制
分支结构,循环结构,Random随机数
程序流程控制
作用:控制程序的执行顺序的,用来实现业务流程。
流程控制一般分为3种:顺序结构、分支结构、循环结构。
一、分支结构
1、if分支(格式流程)
if 第一种形式执行流程如下:
如果 条件表达式 为true,就执行下面的语句体
如果 条件表达式 为false,就不执行
double t = 36.9;
if(t > 37){
System.out.println("这个人的温度异常,把他赶紧带走~~");
}
if 第二种形式执行流程如下:
如果 条件表达式 为true,就执行下面的语句体1
如果 条件表达式 为false,就执行else下面的语句体2
double money = 19;
if(money >= 90){
System.out.println("发红包成功了~");
}else {
System.out.println("余额不足~~");
}
if 第三种形式执行流程如下:
如果 条件表达式1 为true,就执行下面的代码1;
如果 条件表达式1 为false,就继续判断条件表达式2;
如果 条件表达式2 为true,就执行下面的语句体;
如果 条件表达式2 为false,就继续判断条件语句体3;
如果 条件表达式3 为true,就执行下面的语句体3
如果 条件表达式3 为false,就继续判断后面的表达式;
....
如果前面所有条件表达式判断都为false,就执行最后的else语句中的代码
int score = 298;
if(score >= 0 && score < 60) {
System.out.println("您的绩效级别是: D");
}else if(score >= 60 && score < 80){
System.out.println("您的绩效级别是: C");
}else if(score >= 80 && score < 90){
System.out.println("您的绩效级别是: B");
}else if(score >= 90 && score <= 100){
System.out.println("您的绩效级别是: A");
}else {
System.out.println("您录入的分数有毛病~~");
}
2、switch分支(格式流程):
String week = "周三";
switch (week){
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
System.out.println("请求大牛程序员帮忙");
break;
case "周三":
System.out.println("今晚啤酒、龙虾、小烧烤");
break;
case "周四":
System.out.println("主动帮助新来的女程序解决bug");
break;
case "周五":
System.out.println("今晚吃鸡");
break;
case "周六":
System.out.println("与王婆介绍的小芳相亲");
break;
case "周日":
System.out.println("郁郁寡欢、准备上班");
break;
default:
System.out.println("您输入的星期信息不存在~~~");
}
switch 注意事项
- 1.表达式类型只能是byte、short、int、char
JDK5开始支持枚举,JDK7开始支持String
不支持double、float、double
- 2.case给出的值不允许重复,且只能是字面量,不能是变量。
- 3.正常使用switch的时候,不要忘记写break,否则会出现穿透现象。
if 、switch如何选择 - 如果是对一个范围进行判断,建议使用if分支结构- 如果是与一个一个的值比较的时候,建议使用switch分支结构
二、循环结构
概念:控制一段代码反复执行很多次。
1、for循环(格式流程):
初始化语句:一般是定义一个变量,并给初始值
循环条件:一般是一个关系表达式,结果必须是true或者false
迭代语句:用于对条件进行控制,一般是自增或者自减
循环语句体:需要重复执行的代码
for (初始化语句; 循环条件; 迭代语句) {
循环体语句(重复执行的代码);
}
//1.掌握使用for循环批量产生数据。
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
//2.需求:求1~100中所有整数的和
int sum = 0;
//定义一个循环,先产生1-100,这100个数
for (int i = 1; i <= 100; i++) {
//每产生一个数据,就把这个数和sum累加
sum += i; //sum = sum + i;
}
System.out.println("1-100的数据和:" + sum);
2、while循环(格式流程):
初始化语句;
while (循环条件) { 循环体语句(被重复执行的代码);
迭代语句;
}
// 1、定义变量记住珠穆朗玛峰的高度和纸张的高度。
double peakHeight = 8848860;
double paperThickness = 0.1;
// 3、定义一个变量count用于记住纸张折叠了多少次
int count = 0;
// 2、定义while循环控制纸张开始折叠
while (paperThickness < peakHeight) {
// 把纸张进行折叠,把纸张的厚度变成原来的2倍。
paperThickness = paperThickness * 2;
count++;
}
System.out.println("需要折叠多少次:" + count);
System.out.println("最终纸张的厚度是:" + paperThickness);
3、do-while循环(格式流程):
初始化语句;
do {
循环体语句;
迭代语句;
} while (循环条件);
int i = 0;
do {
System.out.println(“Hello World!");
i++;
} while( i < 3);
三种循环的区别小结
1. for循环 和 while循环(先判断后执行);
do...while (先执行后判断)
2.for循环和while循环的执行流程是一模一样的,
功能上无区别,for能做的while也能做,反之亦然。
如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
3 for循环中控制循环的变量只在循环中使用
while循环中,控制循环的变量在循环后还可以继续使用
4、死循环
( 可以一直执行下去的一种循环,如果没有干预不会停下来。)
//for死循环
for ( ; ; ){
System.out.println("Hello World1");
}
//while死循环
while (true) {
System.out.println("Hello World2");
}
//do-while死循环
do {
System.out.println("Hello World3");
}while (true);
5、嵌套循环
(一个循环中又包含另一个循环,也可以理解为 套娃 )
需求:在控制台使用 * 打印出4行5列的矩形
****
****
****
****
//1)先写一个循环用来在一行中打印5个"*"
for (int j = 1; j <= 5; j++) {
System.out.print("*"); // 不换行
}
System.out.println(); //换行
System.out.println("-----------------");
//2)再将第一步的代码套一层循环,执行4次,就可以打印4行
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("*"); // 不换行
}
System.out.println(); //换行
}
6、跳转语句 break 、continue
// 1、break:跳出并结束当前所在循环的执行。
// 场景:假如你又有老婆了,你犯错了,你老婆罚你说:5句我爱你
// 说到第三句的时候心软了,让你别再说了。
for (int i = 1; i <= 5; i++) {
System.out.println("我爱你:" + i);
if(i == 3){
// 说明已经说完了第三句了,心软了。
break; // 跳出并结束当前所在循环的执行。
}
}
// 2、continue:跳出当前循环的当次执行,直接进入循环的下一次执行。
// 场景: 假如你有老婆,你犯错了,你老婆罚你洗碗5天。
// 第三天的时候,你表现很好,第三天不用洗碗,但是不解恨,第四天还是要继续的。
for (int i = 1; i <= 5; i++) {
if(i == 3) {
// 已经到了第三天,第三天不用洗的。
continue;
}
System.out.println("洗碗:" + i);
}
三、Random随机数
概念:Java提供的程序,用于产生随机数。
使用步骤:
1、导包:java.util.Random 工具实现,我们可以不管
2、创建一个Random这样一个东西:Random r = new Random();
3、调用他的功能得到一个随机数: int data = r.nextInt(10); // 0 - 9
注意:Java提供的Random目前只能生产0-n-1之间的数据。
注意2:如果要生成指定区间的随机数,用减加法
13 ~ 40 之间的随机数:
-13
(0, 27) + 13
r.nextInt(28) + 13;//结果(13~40)之间的随机数