一、运算符
1.1 算术运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int a = 10, b = 3;
int sum = a + b; int diff = a - b; int prod = a * b; int quot = a / b; int mod = a % b;
int x = 5; x++; ++x;
int y = 5; int m = y++; int n = ++y;
|
1.2 赋值运算符
1 2 3 4 5 6
| int a = 10; a += 5; a -= 3; a *= 2; a /= 4; a %= 4;
|
1.3 比较运算符
比较运算符的结果是 boolean 类型:
1 2 3 4 5 6 7 8
| int a = 10, b = 20;
boolean eq = (a == b); boolean ne = (a != b); boolean gt = (a > b); boolean lt = (a < b); boolean ge = (a >= b); boolean le = (a <= b);
|
注意:引用类型用 equals() 比较内容,== 比较的是引用地址。
1 2 3 4 5 6 7 8
| String s1 = new String("hello"); String s2 = new String("hello"); System.out.println(s1 == s2); System.out.println(s1.equals(s2));
String s3 = "hello"; String s4 = "hello"; System.out.println(s3 == s4);
|
1.4 逻辑运算符
1 2 3 4 5 6 7 8 9 10 11 12 13
| boolean a = true, b = false;
boolean and = a && b; boolean or = a || b; boolean not = !a;
int x = 0; boolean r = (x > 0) && (10 / x > 1);
boolean and2 = a & b; boolean or2 = a | b;
|
1.5 位运算符
1 2 3 4 5 6 7 8 9 10 11
| int a = 5; int b = 3;
int and = a & b; int or = a | b; int xor = a ^ b; int not = ~a;
int left = a << 1; int right = a >> 1; int ur = a >>> 1;
|
1.6 三元运算符
1 2 3 4
| int max = (a > b) ? a : b;
String status = (score >= 60) ? "及格" : "不及格";
|
二、条件分支
2.1 if-else
1 2 3 4 5 6 7 8 9 10 11
| int score = 85;
if (score >= 90) { System.out.println("优秀"); } else if (score >= 80) { System.out.println("良好"); } else if (score >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); }
|
2.2 switch
Java 14 之后,switch 支持箭头语法和表达式返回值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| int day = 3; switch (day) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; default: System.out.println("其他"); }
switch (day) { case 1 -> System.out.println("星期一"); case 2 -> System.out.println("星期二"); default -> System.out.println("其他"); }
String dayName = switch (day) { case 1 -> "星期一"; case 2 -> "星期二"; case 3 -> "星期三"; default -> "未知"; };
|
三、循环结构
3.1 for 循环
1 2 3 4 5 6 7 8 9 10
| for (int i = 0; i < 5; i++) { System.out.println("i = " + i); }
int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { System.out.println(num); }
|
3.2 while 循环
1 2 3 4 5
| int count = 0; while (count < 5) { System.out.println("count: " + count); count++; }
|
3.3 do-while 循环
do-while 和 while 的区别在于:至少执行一次。
1 2 3 4 5
| int x = 10; do { System.out.println("至少会执行一次"); x++; } while (x < 5);
|
3.4 break 与 continue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| for (int i = 0; i < 10; i++) { if (i == 5) break; System.out.print(i + " "); }
for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; System.out.print(i + " "); }
outer: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == 1 && j == 1) break outer; System.out.println("i=" + i + ", j=" + j); } }
|
四、综合示例:九九乘法表
1 2 3 4 5 6 7 8 9 10
| public class MultiplicationTable { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.printf("%d×%d=%-2d ", j, i, i * j); } System.out.println(); } } }
|
输出:
1 2 3 4 5
| 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ... 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
|
本系列导航:
- (一)变量与数据类型
- (二)运算符与流程控制 ← 当前
- (三)面向对象编程基础