文章目录
- 一、分支语句
- 1. if 语句
- 2. switch 语句
- 二、循环语句
- 1. for 循环语句
- 2. while 循环语句
- 3. do...while 循环语句
- 4. 跳转控制语句
- 5. 循环嵌套
- 6. Random
- 6.1 猜数字游戏
一、分支语句
1. if 语句
if(关系表达式1) {
语句体1;
} else if(关系表达式2){
语句体2;
}
...
else {
语句体n+1;
}
执行流程:
① 首先计算关系表达式1的值;
② 如果值为 true 就执行语句体1,如果值为 false 就计算关系表达式2的值;
③ 如果值为 true 就执行语句体2,如果值为 false 就计算关系表达式3的值;
④ 以此类推,如果前面关系表达式全不满足,则执行语句体 n+1。
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if(a == 1) {
System.out.println("a等于1");
} else if(a == 2){
System.out.println("a等于2");
} else {
System.out.println("a不是1也不是2");
}
2. switch 语句
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
注意:
① case 后面跟的是要和表达式进行比较的值;
② break 表示中断、结束的意思,用来结束 switch 语句,break 不要丢掉;
③ default 表示当所有的情况都不匹配的时候,就执行该处的内容,和 if 语句的 else 相似。
Scanner sc = new Scanner(System.in);
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("请输入正确的月份");
break;
}
default 下的 break 可写可不写!
二、循环语句
1. for 循环语句
for(初始化语句; 条件判断语句; 条件控制语句) {
循环体语句;
}
执行流程:
① 执行初始化语句;
② 执行条件判断语句,如果结果是 false 循环结束,如果是 true 则继续执行;
③ 执行循环体语句;
④ 执行条件控制语句;
⑤ 回到 ② 继续。
//循环输出5次
for (int i = 1; i <= 5; i++) {
System.out.println("我爱你!");
}
案例1:求 1—100 之间的偶数和
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println("1—100之间的偶数和是:" + sum);
案例2:在控制台输出所有的水仙花数
什么是水仙花数?
① 水仙花数是一个三位数;
② 水仙花数的个位、十位、百位的数字立方和等于原数。
for (int i = 100; i <= 999; i++) {
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
int m = a ^ 3 + b ^ 3 + c ^ 3;
if (m == i) {
System.out.println(i);
}
}
2. while 循环语句
while (条件判断语句) {
循环体语句;
}
int j = 1;
while (j <= 5) {
System.out.println("你好!");
j++;
}
3. do…while 循环语句
do {
循环体语句;
} while (条件判断语句);
int j = 1;
do {
System.out.println("你好啊!");
j++;
} while (j <= 5);
while 循环与 do...while 循环的区别是,while 是先判断后执行,而 do...while 先执行后判断。
4. 跳转控制语句
先清楚两个关键字:
① continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行;
② break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
5. 循环嵌套
分支语句中包含分支语句称为分支嵌套,循环语句中包含循环语句称为循环嵌套。
//外循环控制小时的范围,内循环控制分支的范围
for (int hour = 0; hour < 24; hour++) {
for (int minute = 0; minute < 60; minute++) {
System.out.println(hour + "时" + minute + "分");
}
System.out.println("--------");
}
6. Random
作用:用于产生一个随机数。
使用步骤:
① 导包
import java.util.Random;
② 创建对象
Random r = new Random();
③ 获取随机数
int number = r.nextInt(10); //获取数据的范围,[0, 10)
6.1 猜数字游戏
程序自动生成一个 1—100 之间的数字,请你猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示:
如果猜的数字比真实数字大,提示你猜的数据大了;
如果猜的数字比真实数字小,提示你猜的数据小了;
如果猜的数字与真实数字相等,提示恭喜你猜中了。
import java.util.Random;
import java.util.Scanner;
public class cs {
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
int x;
while(true) {
System.out.println("请输入你要猜的数字:");
x = sc.nextInt();
if (x > num) {
System.out.println("你猜的数据大了!");
} else if (x < num) {
System.out.println("你猜的数据小了!");
} else {
System.out.println("恭喜你猜中了!");
break;
}
}
}
}