一、Java 运算符:给数据做 “加减乘除 / 判断” 的工具
运算符就像数学里的 +、-、×、÷,或是生活里的 “是不是”“有没有”,Java 里分几类,每类都有明确用途,先看最常用的:
1. 算术运算符(处理数字计算)
| 运算符 | 作用 | 大白话示例 | 代码示例 | 结果 |
|---|---|---|---|---|
| + | 加 / 拼接字符串 | 5+3;"你好"+"Java" | int a=5+3; | 8 |
| - | 减 | 10-4 | int b=10-4; | 6 |
| * | 乘 | 3×6(注意 Java 里用 * 不是 ×) | int c=3*6; | 18 |
| / | 除 | 8/2;9/2(整数除取整) | int d=9/2; | 4 |
| % | 取余(求余数) | 9%2(9 除以 2 余 1) | int e=9%2; | 1 |
| ++ | 自增(加 1) | a++(先用后加);++a(先加后用) | int f=5; f++; | 6 |
| -- | 自减(减 1) | a--;--a | int g=5; g--; | 4 |
新手注意:整数相除只取整数部分(比如 9/2=4),想算小数要把其中一个数改成浮点数(9.0/2=4.5)。
2. 赋值运算符(给变量赋值)
最基础的是=(不是 “等于”,是 “赋值”),还有简化版:
java
运行
int a = 10; // 把10赋值给a a += 5; // 等价于a = a+5 → a=15 a -= 3; // 等价于a = a-3 → a=12 a *= 2; // 等价于a = a×2 → a=243. 比较运算符(判断大小 / 相等,结果是 true/false)
| 运算符 | 作用 | 示例 | 结果 |
|---|---|---|---|
| == | 等于(注意是两个 =) | 5==5;5==3 | true;false |
| != | 不等于 | 5!=3 | true |
| > | 大于 | 6>4 | true |
| < | 小于 | 6<4 | false |
| >= | 大于等于 | 5>=5 | true |
| <= | 小于等于 | 5<=3 | false |
新手踩坑:别把=和==搞混!a=5是赋值,a==5是判断 a 是不是等于 5。
4. 逻辑运算符(组合多个判断,结果是 true/false)
| 运算符 | 作用 | 大白话 | 示例(a=5,b=3) | 结果 |
|---|---|---|---|---|
| && | 与(短路与) | 两个都真才真,一个假就假 | (a>0)&&(b>0) | true |
| 或(短路或) | 一个真就真,都假才假 | (a>10) | (b>0) | true |
| ! | 非(取反) | 真变假,假变真 | !(a>b) | false |
实用点:短路与&&如果第一个条件是假,第二个条件就不执行(省性能),比如(5<3)&&(10/0=0)不会报错,因为第一个条件假,直接跳过第二个。
二、Java 流程控制:指挥代码 “先做啥、再做啥”
默认代码是从上到下顺序执行,流程控制就是让代码 “选择性执行”“重复执行”,核心分 3 类:
1. 分支结构:满足条件才执行(if/switch)
(1)if 语句(最常用,灵活判断)
java
运行
// 基础if:满足条件执行 int score = 85; if (score >= 60) { System.out.println("及格了"); // 执行这行 } // if-else:二选一 if (score >= 90) { System.out.println("优秀"); } else { System.out.println("非优秀"); // 执行这行 } // if-else if-else:多选一 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)switch 语句(固定值匹配,比如菜单选择)
java
运行
// Java 12+支持简化写法,更清爽 int week = 3; switch (week) { case 1 -> System.out.println("周一"); case 2 -> System.out.println("周二"); case 3 -> System.out.println("周三"); // 执行这行 default -> System.out.println("无效星期"); // 都不匹配时执行 } // 旧版写法(也得认识) switch (week) { case 1: System.out.println("周一"); break; // 跳出switch,避免执行后续case case 3: System.out.println("周三"); break; default: System.out.println("无效星期"); }2. 循环结构:重复执行代码(for/while/do-while)
(1)for 循环(知道循环次数时用,比如循环 10 次)
java
运行
// 格式:for(初始化变量; 循环条件; 变量更新) { 循环体 } // 示例:打印1到5 for (int i = 1; i <= 5; i++) { System.out.println(i); // 依次输出1、2、3、4、5 } // 增强for循环(遍历数组/集合) int[] nums = {10, 20, 30}; for (int num : nums) { System.out.println(num); // 依次输出10、20、30 }(2)while 循环(不知道循环次数,满足条件就执行)
java
运行
// 格式:while(循环条件) { 循环体 } // 示例:计算1+2+...+100 int sum = 0; int i = 1; while (i <= 100) { sum += i; // sum = sum + i i++; } System.out.println(sum); // 结果5050(3)do-while 循环(先执行一次,再判断条件)
java
运行
// 格式:do { 循环体 } while(循环条件); // 示例:不管条件是否满足,先执行一次 int a = 5; do { System.out.println("执行了"); // 会输出这行 } while (a < 0); // 条件假,循环结束3. 跳转语句:控制循环 / 分支的执行(break/continue)
- break:跳出当前循环 /switch,比如循环到第 3 次就停:
java
运行
for (int i = 1; i <= 5; i++) { if (i == 3) { break; // 跳出循环 } System.out.println(i); // 只输出1、2 } - continue:跳过当前次循环,执行下一次,比如跳过 3:
java
运行
for (int i = 1; i <= 5; i++) { if (i == 3) { continue; // 跳过本次 } System.out.println(i); // 输出1、2、4、5 }
三、新手避坑要点
- 运算符优先级:不用死记,不确定就加括号(比如
(a+b)*c比a+b*c清晰); - 循环别写死:一定要有让循环结束的条件(比如
i++),不然会无限循环; - switch 的 case 要加 break(旧版):不然会 “穿透”(执行完当前 case 还执行下一个);
- 逻辑运算符短路特性:
&&和||会跳过不必要的判断,别依赖第二个条件的执行。
总结
- 运算符:核心是算术(计算)、比较(判断)、逻辑(组合判断),是流程控制的 “判断依据”;
- 流程控制:分支(if/switch)决定 “执行哪段代码”,循环(for/while)决定 “重复执行多少次”,跳转(break/continue)微调执行流程;
- 新手先练基础用法,比如用循环算累加、用 if 判断成绩、用 switch 做菜单,练熟了就掌握 Java 基础逻辑了。