分支语句
流程控制语句
通过一些语句,来控制程序的【执行】流程
流程控制语句分类
顺序结构
Java程序默认的执行流程,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数代码都是这样执行的。
分支结构
if语句
格式:
if(判断条件){
语句体;
}
执行流程:
1.首先计算判断结果
2.如果条件的结果为true就执行语句体
3.如果条件的结果为false就不执行语句体
4.继续执行后面的语句内容
格式:
if(判断条件){
语句体1;
}else{
语句体2;
}
格式:
if(判断条件){
语句体1;
}else if(判断条件2){
语句体2;
}
...
else{
语句体n+1;
}
需求:键盘录入考试成绩,根据所在的区间,程序打印出不同的奖励机制
int numOneStart = 95;
int numOneEnd = 100;
int numTwoStart = 90;
int numTwoEnd = 94;
int numThreeStart = 80;
int numThreeEnd = 89;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int num = scanner.nextInt();
if (num >= numOneStart && num <= numOneEnd) {
System.out.println("自行车");
} else if (num >= numTwoStart && num <= numTwoEnd) {
System.out.println("游乐场");
} else if (num >= numThreeStart && num <= numThreeEnd) {
System.out.println("变形金刚");
} else {
System.out.println("挨顿毒打");
}
switch语句
格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
- 拿着表达式的值,依次和case后面的值进行匹配,匹配成功,就会执行对应的语句,在执行的过程中,遇到break就会结束。
- 如果所有的case都不匹配,就会执行default里面的语句体,然后程序结束。
分支语句
for循环语句
格式:
for (初始化语句;条件判断语句;条件控制语句){
}
for循环执行流程
从10开始,打印到0,每次减1
for (int i = 10; i > 0; i--) {
Thread.sleep(1000);
System.out.println(i);
需求:在控制台输出所有的“水仙花数”
什么是“水仙花数”?
1. 水仙花数是一个三位数
2. 水仙花数的个位、十位、百位的数字立方和等于原数
int time=0;
for (int i = 100; i < 1000; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
System.out.println(i);
time++;
}
}
System.out.println(time+"次");
循环嵌套
需求:在控制台使用*打印出4行5列的矩形
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
while循环语句
while循环格式
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
do…while循环
int i = 0;
while (i < 0) {
System.out.println(i + "-----------");
i++;
}
int j = 0;
do {
System.out.println(j + "+++++++++++");
j++;
} while (j < 0);
跳转控制语句
break:终止循环体内容的执行,也就是说结束当前的整个循环
public class Test {
public static void main(String[] args) {
for (int i = 7; i <= 12; i++) {
if (i == 10) {
break;
}
System.out.println(i + "点正在学习");
}
}
}
7点正在学习
8点正在学习
9点正在学习
continue:跳过某次循环体内容的执行,继续下一次的执行
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 2 || i == 3) {
continue;
}
System.out.println("老师正在给第" + i + "号同学发冰棍");
}
}
}
给1号同学冰棍
给2号同学冰棍
结论:如果遇到了循环嵌套 break和continue只能操作自己所在的那一层
Random产生随机数
public class Dice {
public static void main(String[] args) {
// 34 83之间的随机数?
// start end之间的随机数
// random.nextInt(end-start)+start;
Random random = new Random();
for (int i = 0; i < 3; i++) {
System.out.print(random.nextInt(6) + 1);
}
}
}