文章目录

  • 运算符
  • 算术运算符:
  • “+”数字相加
  • 隐式转换
  • 强制转换
  • “+”字符串相加
  • “+”字符相加
  • 自增自减运算符:
  • 赋值运算符:
  • 关系运算符:
  • 逻辑运算符:
  • 短路逻辑运算符:
  • 三元运算符:
  • 运算符优先级
  • 流程控制语句
  • 顺序语句
  • 分支语句——if
  • 分支语句——switch
  • 循环语句——for
  • 循环语句——while
  • for和while的区别


运算符

对字面量或者变量进行操作的符号,比如加减乘除

算术运算符:

加(+) / 减(-) / 乘(*) / 除(/) / 取模(%)

import java.util.Scanner;//导入相关的包
public class test{  
    public static void main(String[] args){
        System.out.println(10/3);
    }
}

输出结果:3

两个整数相除如果出现小数或者除不尽,结果只保留整数部分

import java.util.Scanner;//导入相关的包
public class test{  
    public static void main(String[] args){
        System.out.println(10.0/3);
    }
}

输出结果:3.3333333333333335

“+”数字相加

数字进行运算的时候,数据类型不一样不能进行运算,需要转换成一样的才能进行运算

隐式转换

把一个取值范围小的数值,转换成取值范围大的数据

byte、short、char三种类型数据在进行运算的时候,都会直接先提升为int,然后再进行运算

int a = 10;
double b = a;

byte<short<int<long<float<double

强制转换

正常情况下,一个取值范围大的数值是不允许赋值给取值范围小的变量,如果一定要这么做那么就需要加入强制转换

double a = 10;
int b = (int)a;

需要注意的是,强制转换很容易造成数据出错。如果转换前的数据数值超出了转换后类型数值的范围上限,那么转换必然出错。

“+”字符串相加

当“+”在字符串中出现时,这里的加号就不是运算符,而是连接符,将前后两个字符串连接在一起

“+”字符相加

当“+”在字符中出现时,这里的加号是对两个字符的ASCII码进行加法,结果是加法后的数值对应的ASCII码

自增自减运算符:

++i; i++; --i; i–;

i++和i–是先用后加(减);++i和–i是先加(减)后用

赋值运算符:

= a=b

+= a += b a=a + b

-= a -= b a=a - b

*= a *= b a=a * b

/= a /= b a=a / b

%= a %= b a=a % b

关系运算符:

== 判断a和b的值相等

!= 判断a和b是否不相等

同理,还有 > >= < <=

关系运算符的结果都是布尔类型,注意区分“=”和“==”

逻辑运算符:

逻辑和:&

逻辑或:|

逻辑异或:^

逻辑非:!

public class test{  
    public static void main(String[] args){
        //与
        System.out.println(true&true);
        System.out.println(false&true);
        System.out.println(false&false);
        //或
        System.out.println(true|true);
        System.out.println(false|true);
        System.out.println(false|false);
        //非
        System.out.println(!true);
        System.out.println(!false);
        //异或
        System.out.println(true^true);
        System.out.println(false^true);
        System.out.println(false^false);
    }
}

输出结果:

true
false
false
true
true
false
false
true
false
true
false
短路逻辑运算符:

&&:短路与

||:短路或

上面两个逻辑运算符与“与”和“或”结果相同,只不过有“短路效果”,即第一个元素已经能判断出真值结果就不会去考虑第二个元素

对比下面两端代码:

public class test{  
    public static void main(String[] args){
        int a = 1;
        int b = 1;
        boolean result = (a++<0)&(b++<0);
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}

输出结果:false 2 2

public class test{  
    public static void main(String[] args){
        int a = 1;
        int b = 1;
        boolean result = (a++<0)&&(b++<0);
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}

输出结果:false 1 2

三元运算符:

格式:关系表达式?表达式1:表达式2;

例:求两个数的较大值 a > b ? a : b; 如果关系表达式为真,则执行表达式1,如果关系表达式为假,则执行表达式2

运算符优先级

double java 除法运算定律 java除法语句_开发语言

流程控制语句

大致同C语言中的流程控制语句。

顺序语句

从上往下依次执行,java代码中默认执行语句顺序

分支语句——if

三种情况:

if(关系表达式){
    语句体;
}
if(关系表达式){
    语句体1;
}else{
    语句体2;
}
if(关系表达式1){
    语句体1;
}else if(关系表达式2){
    语句体2;
}
……
 else{
    语句体n+1;
}

分支语句——switch

switch(表达式){
	case 值1;
		语句体1;
		break;
	case 值2;
		语句体2;
		break;
	……
	default;
		语句体n+1;
		break;
}

要匹配的值只能是byte/short/int/char,高版本可以是枚举和String

补充:
(1)case穿透:语句体中没有写break导致的

循环语句——for

for(初始化语句;条件判断语句;条件控制语句){
	循环体语句;
}

循环语句——while

初始化语句;
while(条件判断语句){
	循环体语句;
	条件控制语句;
}
循环下面的其它语句;

for和while的区别

(1)for循环中,控制循环的变量的作用域在for循环的语法结构中(可简单理解为大括号内),在for循环结束后,就不能再次被访问到了

(2)while循环中,控制循环的变量不属于while循环的语法结构中,循环结束后依然可以被使用

(3)for循环一般在知道循环次数或者循环范围时使用,while循环一般在不知道循环的次数和范围,只知道循环的结束条件时使用