02-运算符与流程控制
对应原始资料:
day02-运算符&选择语句、day03-循环语句
一、运算符
1. 算术运算符
+、-、*、/、%、++、--
java
// 整数相除只能得到整数
System.out.println(10 / 3); // 3
System.out.println(10 % 3); // 1
// 字符参与运算:用码表值
System.out.println('A' + 1); // 66
// 字符串拼接:+ 只要有字符串参与就是拼接
System.out.println("a" + 1 + 2); // "a12"
System.out.println(1 + 2 + "a"); // "3a"++ / --:
java
int a = 5;
int b = a++; // 先用后加,b=5, a=6
int c = ++a; // 先加后用,a=7, c=72. 赋值运算符
=、+=、-=、*=、/=、%=
s += 1等价于s = (s的类型)(s + 1),自带强转,不会丢失精度。
3. 关系运算符
==、!=、>、<、>=、<= → 结果是 boolean。
4. 逻辑运算符
&与、|或、!非、^异或- 短路与
&&:左边为 false 时右边不执行。 - 短路或
||:左边为 true 时右边不执行。
java
int x = 3, y = 4;
System.out.println(++x > 4 && y-- > 4); // 注意自增/自减与短路联用5. 三元运算符
java
int a = 5, b = 10;
int max = (a > b) ? a : b; // 106. 位运算(了解)
&、|、^、~、<<、>>、>>>
<<左移:乘 2>>右移:除 2- 对称数交换:
a ^= b; b ^= a; a ^= b;
二、选择语句
1. if 语句
java
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}2. switch 语句
java
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break; // 不写 break 会"穿透"
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("输入有误");
}switch 支持的类型:
byte、short、char、int、String(JDK7+)、枚举(JDK5+)。
三、循环语句
1. for 循环
java
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}2. while 循环
java
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}3. do...while 循环
java
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10); // 至少执行一次4. 三种循环的选择
- 次数明确 →
for - 次数不明确 →
while - 至少执行一次 →
do...while
5. 死循环与跳转控制
java
// 死循环
while (true) { ... }
// break:结束整个循环
// continue:结束本次,进入下一次
for (int i = 1; i <= 10; i++) {
if (i % 3 == 0) continue; // 跳过 3 的倍数
if (i == 8) break; // 到 8 结束
System.out.println(i);
}四、循环嵌套与经典案例
1. 九九乘法表
java
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d*%d=%d\t", j, i, i * j);
}
System.out.println();
}2. 猜数字游戏
java
int target = new Random().nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
while (true) {
int guess = sc.nextInt();
if (guess > target) System.out.println("大了");
else if (guess < target) System.out.println("小了");
else { System.out.println("猜对了"); break; }
}练习建议
- 用 for 求 1~100 的偶数和、奇数和。
- 打印三角形、九九乘法表、菱形。
- 写一个简易计算器(Scanner + switch)。
- 实现「逢七过」游戏逻辑。