Java基础五:运算符与循环结构
·
运算符
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("密码正确!");
//让用户输入密码,知道输入正确为止
更多推荐


所有评论(0)