前言:学会Java变量与数据类型后,下一步就是掌握「运算符」—— 它相当于Java的“计算工具”,用来对变量和数据进行运算、判断。很多新手刚接触时,会混淆运算符的用法(比如分不清=和==),甚至写出逻辑错误的代码。这篇文章全程避开复杂术语,用「生活化类比+可直接运行的代码案例」,把Java基础运算符讲透,每个知识点都搭配详细注释,新手跟着敲一遍就能掌握,复制粘贴就能在CSDN发布,助力你稳步推进Java入门之路!

温馨提示:所有代码均适配JDK8及以上版本,可直接复制到IDEA、Eclipse等Java编辑器运行,报错可评论区留言,逐一解答;建议结合上一篇「变量与数据类型」一起学习,衔接更顺畅~

一、先搞懂:什么是Java运算符?

1. 通俗理解

运算符就像我们现实中用的「计算器按钮」—— 比如用“+”按钮做加法、用“-”按钮做减法,用“>”按钮判断大小。在Java中,运算符就是用来连接变量/数据,执行特定操作(计算、判断、赋值)的符号,是编写Java代码的核心工具。

比如:用运算符计算10+5、判断10是否大于5、给变量赋值,这些操作都离不开运算符,它和变量、数据类型一起,构成Java基础的“铁三角”。

2. 运算符的分类

Java中的运算符有很多,但新手无需全部掌握,重点吃透以下4类基础运算符,就能应对大部分入门场景:

  • 赋值运算符:给变量赋值(最基础,比如=、+=);

  • 算术运算符:做数学计算(比如+、-、*、/);

  • 比较运算符:做判断,返回true/false(比如==、>、<);

  • 逻辑运算符:组合多个判断条件(比如&&、||、!)。

下面逐一讲解,每个类别都配实操案例,确保新手能看懂、会使用。

二、赋值运算符(最基础,必掌握)

赋值运算符的核心作用:给变量赋值,把右边的值(或计算结果)赋给左边的变量。最常用的是「=」,还有简化版的复合赋值运算符(+=、-=等),能减少代码量。

1. 核心赋值运算符(=)

语法:变量名 = 值/表达式;(注意:是“赋值”,不是“等于”,和数学中的“=”含义不同)

public class AssignDemo1 {
    public static void main(String[] args) {
        // 案例:用=给变量赋值
        int a = 10; // 把10赋给变量a
        double b = 3.14; // 把3.14赋给变量b
        String c = "Java"; // 把字符串"Java"赋给变量c
        
        // 把表达式的结果赋给变量
        int d = a + 5; // 先计算a+5=15,再把15赋给d
        System.out.println(a); // 输出:10
        System.out.println(d); // 输出:15
    }
}

新手避坑:不要把“赋值”和“等于”混淆,比如「a = 5」是“把5赋给a”,不是“a等于5”;判断“a是否等于5”要用后面讲的「==」。

2. 复合赋值运算符(简化写法,常用)

当我们需要“先运算,再赋值”时,比如「a = a + 5」,可以用复合赋值运算符简化,新手重点掌握前4个即可。

运算符 含义(等价写法) 实操案例
+= a += b → a = a + b a += 5 → a = a + 5
-= a -= b → a = a - b a -= 5 → a = a - 5
*= a *= b → a = a * b a *= 5 → a = a * 5
/= a /= b → a = a / b a /= 5 → a = a / 5
%= a %= b → a = a % b a %= 5 → a = a % 5
// 复合赋值运算符案例
public class AssignDemo2 {
    public static void main(String[] args) {
        int a = 10;
        a += 5; // 等价于 a = a + 5 → a=15
        System.out.println(a); // 输出:15
        
        a -= 3; // 等价于 a = a - 3 → a=12
        System.out.println(a); // 输出:12
        
        a *= 2; // 等价于 a = a * 2 → a=24
        System.out.println(a); // 输出:24
        
        a /= 4; // 等价于 a = a / 4 → a=6
        System.out.println(a); // 输出:6
    }
}

三、算术运算符(做数学计算,高频使用)

算术运算符用于对数字类型(int、double等)的变量/数据进行数学运算,和我们现实中的数学运算逻辑基本一致,新手重点掌握6个核心运算符。

1. 核心算术运算符

运算符 作用 案例(a=10,b=3) 结果
+ 加法 a + b 13
- 减法 a - b 7
* 乘法 a * b 30
/ 除法(注意:整数除法取整数部分) a / b(int类型) 3(不是3.333)
% 取余(除法后的余数) a % b 1(10÷3余1)
++ 自增(变量值+1) a++ 或 ++a 11(两种写法区别下面讲)
自减(变量值-1) a-- 或 --a 9

2. 实操案例(可直接复制运行)

public class ArithmeticDemo {
    public static void main(String[] args) {
        // 基础算术运算
        int a = 10;
        int b = 3;
        System.out.println("加法:" + (a + b)); // 输出:加法:13
        System.out.println("减法:" + (a - b)); // 输出:减法:7
        System.out.println("乘法:" + (a * b)); // 输出:乘法:30
        System.out.println("整数除法:" + (a / b)); // 输出:整数除法:3(取整数)
        System.out.println("取余:" + (a % b)); // 输出:取余:1
        
        // 自增、自减运算
        int c = 5;
        c++; // 等价于 c = c + 1
        System.out.println("c自增后:" + c); // 输出:6
        
        int d = 5;
        --d; // 等价于 d = d - 1
        System.out.println("d自减后:" + d); // 输出:4
    }
}

3. 新手避坑重点(高频错误)

  • 避坑1:整数除法(/)只取整数部分,不会四舍五入。比如10/3=3(不是3.333),如果想得到小数结果,需要把其中一个数改成double类型(比如10.0/3);

  • 避坑2:自增(++)、自减(–)的前后区别:

    • a++:先使用a的值,再让a+1(比如int x = a++; 先把a的值赋给x,再a+1);

    • ++a:先让a+1,再使用a的值(比如int x = ++a; 先a+1,再把新值赋给x);

  • 避坑3:不能用算术运算符操作字符串(比如"Java" + 10,虽然不会报错,但会拼接成字符串"Java10",不是数学加法)。

// 避坑案例
public class ArithmeticPitfall {
    public static void main(String[] args) {
        // 避坑1:整数除法取整
        System.out.println(10 / 3); // 输出:3
        System.out.println(10.0 / 3); // 输出:3.3333333333333335
        
        // 避坑2:自增前后区别
        int a = 10;
        int x = a++; // 先赋值x=10,再a=11
        int y = ++a; // 先a=12,再赋值y=12
        System.out.println(x); // 输出:10
        System.out.println(y); // 输出:12
        
        // 避坑3:字符串拼接
        System.out.println("Java" + 10); // 输出:Java10(拼接,不是加法)
    }
}

四、比较运算符(做判断,后续流程控制必备)

比较运算符用于比较两个变量/数据的大小、是否相等,运算结果只有两个:true(真,满足条件)、false(假,不满足条件),后续学习if判断、循环时会频繁用到。

1. 核心比较运算符(必记)

运算符 作用 案例(a=10,b=3) 结果
== 判断两个值是否相等(重点:两个=) a == b false
!= 判断两个值是否不相等 a != b true
> 判断左边是否大于右边 a > b true
< 判断左边是否小于右边 a < b false
>= 判断左边是否大于等于右边 a >= 10 true
<= 判断左边是否小于等于右边 b <= 2 false

2. 实操案例

public class CompareDemo {
    public static void main(String[] args) {
        int age = 18;
        double score = 85.5;
        
        // 比较运算,结果是true/false
        System.out.println(age == 18); // 输出:true(年龄等于18)
        System.out.println(score > 90); // 输出:false(分数不大于90)
        System.out.println(age != 20); // 输出:true(年龄不等于20)
        System.out.println(score <= 100); // 输出:true(分数小于等于100)
        
        // 比较运算符的实际用途(结合布尔变量)
        boolean isAdult = age >= 18; // 判断是否成年,结果true
        System.out.println("是否成年:" + isAdult); // 输出:是否成年:true
    }
}

3. 新手避坑

最容易犯的错误:把「==」和「=」混淆!

  • 「==」是比较运算符,用来判断两个值是否相等(比如a == 18);
  • 「=」是赋值运算符,用来给变量赋值(比如a = 18);
    如果写成「if(a = 18)」,会报错(把18赋给a,不是判断a是否等于18)。

五、逻辑运算符(组合判断,进阶基础)

逻辑运算符用于组合多个比较条件(比较运算符的结果),最终返回true或false,核心用于“多条件判断”(比如“年龄大于18且分数大于80”)。新手重点掌握3个核心逻辑运算符。

1. 核心逻辑运算符

运算符 作用(通俗理解) 规则 案例(a=true,b=false)
& 逻辑与(且) 两个条件都为true,结果才为true;只要有一个false,结果就是false a && b → false
逻辑或(或)
! 逻辑非(取反) true变false,false变true !a → false

2. 实操案例(贴近实际场景)

public class LogicDemo {
    public static void main(String[] args) {
        // 场景:判断学生是否能获奖(分数>80 且 年龄>16)
        int score = 85;
        int age = 17;
        
        boolean canWin = score > 80 && age > 16;
        System.out.println("是否能获奖:" + canWin); // 输出:true(两个条件都满足)
        
        // 场景:判断学生是否符合条件(分数>90 或 年龄<18)
        boolean isQualified = score > 90 || age < 18;
        System.out.println("是否符合条件:" + isQualified); // 输出:true(年龄<18满足)
        
        // 逻辑非(取反)
        boolean isStudent = true;
        System.out.println("不是学生:" + !isStudent); // 输出:false
    }
}

3. 新手避坑

逻辑与(&&)有「短路特性」:如果第一个条件是false,第二个条件不会执行(因为无论第二个条件是什么,结果都是false);
逻辑或(||)也有「短路特性」:如果第一个条件是true,第二个条件不会执行(因为无论第二个条件是什么,结果都是true)。

// 短路特性案例
public class LogicShortCircuit {
    public static void main(String[] args) {
        int a = 10;
        // 逻辑与:第一个条件false,第二个条件不执行(a++不会执行)
        boolean b = (a > 20) && (a++ > 5);
        System.out.println(a); // 输出:10(a++未执行)
        
        // 逻辑或:第一个条件true,第二个条件不执行(a--不会执行)
        boolean c = (a < 20) || (a-- < 5);
        System.out.println(a); // 输出:10(a--未执行)
    }
}

六、新手常见报错汇总(避坑天花板)

整理了新手使用运算符时,最常遇到的4种报错,附上原因和解决方案,看完少踩90%的坑!

  • 报错1:incompatible types: int cannot be converted to boolean(类型不兼容,int不能转boolean)
    原因:把赋值运算符(=)当比较运算符()使用,比如if(a = 18)(赋值结果是int,if需要boolean)
    解决方案:把=改成,比如if(a == 18)。

  • 报错2:operator ‘/’ cannot be applied to ‘java.lang.String’, ‘int’(运算符/不能用于String和int)
    原因:用算术运算符操作字符串和数字,比如"10" / 2
    解决方案:先把字符串转成数字(后续会讲),再进行运算。

  • 报错3:unexpected type(意外类型)
    原因:比较运算符使用错误,比如a => 10(正确写法是a >= 10)
    解决方案:修正比较运算符的写法,注意>=、<=的顺序。

  • 报错4:division by zero(除以零)
    原因:用0作为除法或取余的除数,比如10 / 0
    解决方案:确保除数不为0,可先判断除数是否为0。

七、总结(新手必看)

Java基础运算符的核心,新手只需掌握以下3点,就能轻松应对入门场景:

  • 赋值运算符:核心是=,复合赋值运算符(+=、-=)能简化代码,记住“赋值≠等于”;
  • 算术运算符:重点掌握+、-、*、/、%,注意整数除法取整、自增自减的前后区别;
  • 比较+逻辑运算符:比较运算符返回true/false,逻辑运算符组合多条件,记住&&(且)、||(或)、!(非)的规则。

练习建议:结合上一篇的变量知识,自己写代码练习“定义变量→用运算符运算→打印结果”,比如计算两个数的和、差、积、商,判断两个数的大小,慢慢就能熟练掌握。

运算符是Java流程控制(if、循环)的基础,现在打扎实,后续学习会更轻松。如果有报错、有疑问,欢迎在评论区留言,逐一解答!觉得有用的话,点赞收藏不迷路,关注我,后续持续更新Java新手基础教程,陪你从零学会Java~

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐