Java运算符的分类
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 三元运算符(条件运算符)
Java各类运算符的作用
算术运算符
用于执行常见的数学运算,例如加法、减法、乘法和除法。常见的使用场景包括计算数值之间的加减乘除关系,例如在计算器应用程序中进行数学运算。
运算符 | 描述 |
---|---|
+ | 加法:将运算符两侧的操作数值相加 |
- | 减法:将运算符左侧操作数的值减去右边操作数的值 |
* | 乘法:将运算符两侧操作数的值相乘 |
/ | 乘法:将运算符两侧操作数的值相乘 |
% | 取余:将运算符左侧操作数的值除以右侧操作数值的余数 |
++ | 自增:操作数的值增加1 |
– | 自减: 操作数的值减少1 |
示例:
// 算术运算符示例
int a = 10;
int b = 20;
int sum = a + b; // 加法运算
int difference = a - b; // 减法运算
int product = a * b; // 乘法运算
int quotient = b / a; // 除法运算
int remainder = b % a; // 取模运算
赋值运算符
用于为变量赋值。常见的使用场景是在程序中将计算得到的结果赋值给变量,或者对变量进行自增、自减等操作。
运算符 | 描述 |
---|---|
= | 简单的赋值运算符,将右操作数的值赋给左侧操作数 |
+= | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 |
-= | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 |
*= | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 |
/= | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 |
% | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 |
<<= | 左移位赋值运算符 |
>>= | 右移位赋值运算符 |
&= | 按位与赋值运算符 |
^= | 按位异或赋值操作符 |
|= | 按位或赋值操作符 |
示例:
int x = 10;
x += 5; // 相当于 x = x + 5;
x -= 3; // 相当于 x = x - 3;
x *= 2; // 相当于 x = x * 2;
x /= 4; // 相当于 x = x / 4;
x %= 3; // 相当于 x = x % 3;
关系运算符
用于比较两个值之间的关系,返回布尔值。常见的使用场景是在条件语句中进行数值大小的比较,例如判断两个数的大小关系。
运算符 | 描述 |
---|---|
== | 检查如果两个操作数的值是否相等,如果相等则条件为真。 |
!= | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |
<< = | 左移位赋值运算符 |
>> = | 右移位赋值运算符 |
& = | 按位与赋值运算符 |
^= | 按位异或赋值操作符 |
| = | 按位或赋值操作符 |
示例:
int m = 5;
int n = 10;
boolean isEqual = (m == n); // 等于运算
boolean isNotEqual = (m != n); // 不等于运算
boolean isGreater = (m > n); // 大于运算
boolean isLess = (m < n); // 小于运算
boolean isGreaterOrEqual = (m >= n); // 大于等于运算
boolean isLessOrEqual = (m <= n); // 小于等于运算
逻辑运算符
用于确定变量或值之间的逻辑关系。常见的使用场景是在条件语句中进行逻辑判断,例如判断多个条件的组合关系。
运算符 | 描述 |
---|---|
&& | 逻辑与运算符:当且仅当两个操作数都为真,条件才为真 |
| | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 |
! | 逻辑非运算符:用来反转操作数的逻辑状态。如果条件为false,则经过逻辑非运算符后将得到true。 |
示例:
boolean p = true;
boolean q = false;
boolean andResult = p && q; // 逻辑与运算
boolean orResult = p || q; // 逻辑或运算
boolean notResult = !p; // 逻辑非运算
位运算符
用于对整数类型的数据进行位操作。常见的使用场景包括进行位运算、位移操作、或者进行位级别的掩码操作。
操作符 | 描述 |
---|---|
& | 如果相对应位都是1,则结果为1,否则为0 |
| | 如果相对应位都是0,则结果为0,否则为1 |
^ | 如果相对应位值相同,则结果为0,否则为1 |
~ | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 |
示例:
// 位运算符示例
int num1 = 5; // 二进制表示为 00000101
int num2 = 3; // 二进制表示为 00000011
int bitwiseAnd = num1 & num2; // 按位与运算
int bitwiseOr = num1 | num2; // 按位或运算
int bitwiseXor = num1 ^ num2; // 按位异或运算
int leftShift = num1 << 2; // 左移运算
int rightShift = num1 >> 1; // 右移运算
三元运算符(条件运算符)
用于根据条件的成立与否返回不同的值。常见的使用场景是在简单的条件判断和赋值操作中,根据条件的真假返回不同的结果。
语法:
数据类型 变量名 = (表达式) ? 当表达式结果为true时 : 当表达式结果为false时
示例:
int value1 = 10;
int value2 = 20;
int result = (value1 > value2) ? value1 : value2; // 如果 value1 大于 value2,则结果为 value1,否则结果为 value2
控制流程:
控制流程包括if语句和循环结构。
if 语句
在Java中,if语句用于根据条件执行不同的代码块。它可以包含一个可选的else分支,这意味着可以根据条件的真假执行不同的代码块。如果条件为真,则执行if块中的代码;如果条件为假,则执行else块中的代码。如果不需要else分支,if语句也可以单独存在。
语法:
if (条件语句) {
// 如果条件为真,执行这里的代码
}
else {
// 如果条件为假,执行这里的代码
}
示例:
int x = 10;
if (x > 5) {
System.out.println("x大于5");
}
else {
System.out.println("x不大于5");
}
循环结构
循环结构允许我们多次执行相同的代码块,直到满足特定条件为止。常见的循环结构包括for循环和while循环。
for 循环
for循环用于遍历数组或集合中的元素,并执行相同的代码块。
示例:
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
while 循环
while循环在条件为真时重复执行代码块,直到条件变为假为止。
语法:
while (条件语句){
// 如果条件为真,执行这里的代码
}
示例:
int i = 1;
while (i < 6) {
System.out.println(i);
i++;
}
do-while 循环
do-while循环是一种循环结构,它与while循环类似,但是它保证循环体至少会被执行一次,即先执行循环语句,然后再检查循环条件。
语法:
do {
// 循环语句
}
while (condition);`
示例:
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);
在这个示例中,循环体会先执行一次,然后检查条件i <= 5。如果条件为真,继续执行循环,直到条件为假为止。这确保了循环体至少会被执行一次。
break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
语法:
break;
switch…case 循环
在Java中,switch语句用于根据表达式的值选择不同的执行路径。它是一种更清晰、更易读的条件语句,适用于需要根据不同值执行不同代码块的情况。
语法:
switch (expression)
{
case value1:
// 代码块
break;
case value2:
// 代码块
break;
default:
// 默认代码块
break;
}
示例:
int seasons = 4;
String seasonsString;
switch (jijie) {
case 1: seasonsString = "春季";
break;
case 2: seasonsString = "夏季";
break;
case 3: seasonsString = "秋季";
break;
case 4: seasonsString = "冬季";
break;
default: seasonsString = "无效的季节";
break;
}
continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
语法:
continue;