运算符

Java中的运算符是用于执行各种操作的符号,它们可以对常量或变量进行运算,并产生结果。运算符按功能可分为以下几大类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、三元运算符以及类型比较运算符。

算术运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

运算符作用示例
+加法、字符串连接a + b
-减法a - b
*乘法a * b
/除法a / b
%取模(求余数)a % b
++自增(前置/后置)++a 或 a++
--自减(前置/后置)--a 或 a--
int a = 10, 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 x = 5;
System.out.println(++x);     // 6(先加1再使用)
System.out.println(x++);     // 6(先使用再加1,此时x变为7)

关系运算符

运算符作用示例
==等于a == b
!=不等于a != b
>大于a > b
<小于a < b
>=大于等于a >= b
<=小于等于a <= b
int a = 10, b = 20;
System.out.println(a == b);   // false
System.out.println(a != b);   // true
System.out.println(a > b);    // false
System.out.println(a < b);    // true

位运算符

运算符作用示例
==等于a == b
!=不等于a != b
>大于a > b
<小于a < b
>=大于等于a >= b
<=小于等于a <= b
int a = 5;          // 二进制 0101
int b = 3;          // 二进制 0011
System.out.println(a & b);   // 1 (0001)
System.out.println(a | b);   // 7 (0111)
System.out.println(a ^ b);   // 6 (0110)
System.out.println(~a);      // -6(补码表示)
System.out.println(a << 1);  // 10 (1010) 左移1位相当于乘2
System.out.println(a >> 1);  // 2  (0010) 右移1位相当于除2取整

逻辑运算符

运算符作用示例
&&短路与(a>b) && (c<d)
||短路或(a>b) || (c<d)
!逻辑非!flag
boolean t = true, f = false;
System.out.println(t && f);   // false
System.out.println(t || f);   // true
System.out.println(!t);       // false

// 短路效应
int a = 5, b = 0;
if (b != 0 && a / b > 1) {    // 不会触发除零异常,因为b!=0为false,右侧不执行
    System.out.println("OK");
}

赋值运算符

运算符作用示例
=简单赋值a = b
+=加后赋值a += b
-=减后赋值a -= b
*=乘后赋值a *= b
/=除后赋值a /= b
%=取模后赋值a %= b
&=按位与后赋值a &= b
|=按位或后赋值a |= b
^=按位异或后赋值a ^= b
<<=左移后赋值a <<= b
>>=右移后赋值a >>= b
>>>=无符号右移后赋值a >>>= b
int a = 10, b = 5;
a += b;   // 相当于 a = a + b; a变为15
a *= 2;   // a = 30
System.out.println(a);  // 30

三元运算符

根据布尔值表达式返回两个值之一

语法:条件 ? 表达式1 : 表达式2

int age = 20;
String status = (age >= 18) ? "成年" : "未成年";
System.out.println(status);   // 成年

使用场景:简单的条件赋值,替代简短的if-else

instanceof 运算符

判断对象是否为某个类(或其子类)的实例。

String str = "Hello";
boolean result = str instanceof String;   // true
boolean result2 = str instanceof Object;  // true(String继承自Object)

使用场景:类型安全检查。

循环结构

1.for循环

先执行初始化语句(仅一次),然后判断布尔表达式,如果为true则执行循环体,接着执行更新语句,再次判断表达式,如此反复,直到表达式为false时退出循环。

for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

2.while循环

先判断布尔表达式,如果为true则执行循环体,然后再次判断,直到表达式为false。可能一次都不执行(如果一开始条件就不成立)。

int sum = 0, i = 1;
while (i <= 100) {
    sum += i;
    i++;
}
System.out.println("总和:" + sum);

3.do-while循环

先执行一次循环体,再判断布尔表达式,如果为true则继续下一次循环,否则退出。至少执行一次。

Scanner scanner = new Scanner(System.in);
int password;
do {
    System.out.print("请输入密码:");
    password = scanner.nextInt();
} while (password != 123456);
System.out.println("密码正确!");
//让用户输入密码,知道输入正确为止

Logo

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

更多推荐