前言

本文将介绍Java的运算符类型及选择、循环结构相关语法


运算符

算数运算符

运算符描述
+⠀-⠀*⠀/⠀%加、减、乘、除、取模(两数相除取余数)
++⠀⠀-- –自增(+1)、自减(-1)
““⠀+⠀””连接字符串

比较运算符

运算符描述
<是否小于
>是否大于
<=是否小于或等于
>=是否大于或等于
==是否相等
!=是否不等

逻辑运算符

运算符描述
&&逻辑与,支持短路运算
||逻辑或,支持短路运算
!逻辑非

短路运算:当 false && xxxtrue || xxx 时,表达式xxx均不会被执行。

位运算符

运算符描述
&按位与
|按位或
^按位异或
~按位取反
<<按位左移,低位补0
>>按位右移,高位补符号位
0(正数)1(负数)
>>>按位右移,高位补0

赋值运算符

运算符描述
=将右边表达式结果赋给左边
+=⠀、-=⠀、*=⠀、/=⠀、%=a⠀x=⠀b 相当于 x⠀=⠀a⠀⠀x⠀⠀b
<<=⠀、>>=⠀、&=⠀、|=⠀、^=⠀、~=a⠀x=⠀b 相当于 x⠀=⠀a⠀⠀x⠀⠀b

三元运算符

格式:数据类型 变量名称 = 判断条件 ? 表达式A : 表达式B;

等价于

if(判断条件){
    数据类型 变量名称 = 表达式A;
}else{
    数据类型 变量名称 = 表达式B;
}

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类型或接口类型)

使用格式:(对象实例名) instanceof (class或interface类型)

例如:

String name = "James";
boolean result = name instanceof String;
// 由于 name 是 String 类型,所以返回真

运算符优先级

一般而言,单目运算符优先级较高赋值运算符优先级较低

算术运算符优先级较高关系逻辑运算符优先级较低

多数运算符具有左结合性单目运算符、三目运算符、赋值运算符具有右结合性

优先级运算符结合性
1() 、[] 、{}–>
2! 、+ 、- 、~ 、++ 、- -<–
3* 、/ 、%–>
4+ 、-–>
5<< 、>> 、>>>–>
6< 、<= 、> 、>= 、
instanceof
–>
7== 、!=–>
8&–>
9^–>
10|–>
11&&–>
12||–>
13? :<–
14= 、
+= 、-= 、*= 、/= 、%= 、
&= 、|= 、^= 、~= 、
<<= 、>>= 、>>>=
<–

:使用优先级为 1 的小括号可以改变其他运算符的优先级


选择语句

if语句

if(布尔表达式){
    //如果布尔表达式为true将执行的语句
}

if…else语句

if(布尔表达式){
    //如果布尔表达式的值为true将执行的语句
}else{
    //如果布尔表达式的值为false将执行的语句
}

if…else if…else语句

if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
    //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
    //如果布尔表达式 3的值为true执行代码
}else {
    //如果以上布尔表达式都不为true执行代码
}

:表达式的判断存在先后顺序,若前面的成立,后面的将不会被执行

switch case 语句

  • 用于判断的变量类型可以是: byteshortint 或者 char , 从 Java SE 7 开始,switch 支持 String 类型
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量
  • case 语句执行后直至遇到break语句才会终止 , 若没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句
  • switch 语句可以包含一个 default 分支 , 一般放在语句末尾 , 它将在没有 case 语句的值和变量值相等的时候执行 , 且不需要添加 break 语句
switch(expression){
    case value :
        //语句
        break; //可选
    case value :
        //语句
        break; //可选
    case value :
        //语句
        break; //可选
    //可以有任意数量的case语句
    default : //可选
        //语句
}

循环语句

while循环

//格式:
while(布尔表达式){
    //循环内容
}
//例如:
int x = 1;
while(x < 5){
    System.out.println("value of x : " + x);
    x++;
}
//结果:
value of x : 1
value of x : 2
value of x : 3
value of x : 4

do…while循环

//格式:
do {
    //代码语句,至少执行一次
}while(布尔表达式);
//例如:
int x = 1;
do{
    System.out.println("value of x : " + x);
    x++;
}while(x < 5);
//结果:
value of x : 1
value of x : 2
value of x : 3
value of x : 4

for循环

//格式:
for(初始化; 布尔表达式; 更新) {
    //代码语句
}
//例如:
for(int x = 1; x < 5; x++){
    System.out.println("value of x : " + x);
}
//结果:
value of x : 1
value of x : 2
value of x : 3
value of x : 4

增强for循环

//格式:
for(声明语句 : 表达式) {
    //代码语句
}
//例如:
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers){
    System.out.println("numbers : " + x);
}
//结果:
10
20
30
40
50

break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块

break 跳出最里层的循环,并且继续执行该循环下面的语句。

public class demo {
    public static void main(String[] args) {
        int [] numbers = {10, 20, 30, 40, 50};
        for(int x : numbers) {
            // x 等于 30 时跳出循环
            if(x == 30) {
                break;
            }
            System.out.println(x);
        }
    }
}
//结果:
10
20

continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代

在 for 循环中,continue 语句使程序立即跳转到更新语句

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句

public class demo {
    public static void main(String[] args) {
        int [] numbers = {10, 20, 30, 40, 50};
        for(int x : numbers) {
            // x 等于 30 时直接进入下一循环
            if(x == 30) {
                continue;
            }
            System.out.println(x);
        }
    }
}
//结果:
10
20
40
50