Java基础五:运算符与循环结构

运算符

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

算术运算符

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

运算符 作用 示例
+ 加法、字符串连接 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 取模(求余数) a % b
++ 自增(前置/后置) ++aa++
-- 自减(前置/后置) --aa--
java 复制代码
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
java 复制代码
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
java 复制代码
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)
` `
! 逻辑非 !flag
java 复制代码
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
java 复制代码
int a = 10, b = 5;
a += b;   // 相当于 a = a + b; a变为15
a *= 2;   // a = 30
System.out.println(a);  // 30

三元运算符

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

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

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

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

instanceof 运算符

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

java 复制代码
String str = "Hello";
boolean result = str instanceof String;   // true
boolean result2 = str instanceof Object;  // true(String继承自Object)

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

循环结构

1.for循环

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

java 复制代码
for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

2.while循环

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

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

3.do-while循环

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

java 复制代码
Scanner scanner = new Scanner(System.in);
int password;
do {
    System.out.print("请输入密码:");
    password = scanner.nextInt();
} while (password != 123456);
System.out.println("密码正确!");
//让用户输入密码,知道输入正确为止
相关推荐
MrSYJ2 小时前
Netty异常传播机制
java·服务器·netty
于先生吖2 小时前
基于 Java 开发智慧社区系统:跑腿 + 家政 + 本地生活服务实战教程
java·开发语言·生活
魑魅魍魉都是鬼2 小时前
JAVA面向对象设计的五大原则
java
小箌2 小时前
springboot_01
java·spring boot·后端
坐吃山猪2 小时前
Python项目一键创建
开发语言·python
sunwenjian8862 小时前
Spring Cloud gateway 路由规则
java
panzer_maus2 小时前
死锁的产生与解决
java·开发语言
asom222 小时前
MVC vs DDD
java·mvc·ddd