CGB2108-Day03-Java运算符

1 运算符
1.1 概述
运算符 用于连接 表达式 的 操作数,并对操作数执行运算。


在java语言中,运算符可分为5种类型:
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。
单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。

  1. 普通的四则运算符 + - * / ,不能改变变量本身的值,除非将表达式的结果重新赋值给变量,才会改变变量本身的值
  2. 取余/求模 %
    7%3余数为1 4%2余数为0【余数为0表示整除】

  3. 自增自减运算符
    自增:++ ,表示给变量的值+1
    自减:-- ,表示给变量的值-1
    前缀式:++a --a ,符号在前,先改变变量本身的值+1/-1,再使用(比如打印)
    后缀式:a++,a–,符号在后,先使用,再改变变量本身的值+1/-1
    注意:前面的代码会对后面的代码产生影响,所以算变量值的要注意
    注意:不管是前缀式还是后缀式,都会改变变量的值,区别在于时机不同

  4. 比较运算符:> < >= <= ==【左右两边的值是否相等】 !=【左右两边的值是否不相等】
    注意:比较运算符的结果都是布尔类型的

  5. 逻辑运算符
    & 单与/and : 全真才真,有假则假
    && 双与/短路与:判断逻辑与单与相同,只不过增加了一个短路的效果
    即:如果左边已经判断为false,右边就无需继续判断
    | 单或/or : 全假才假,有真则真
    || 双或/短路或:判断逻辑与单或相同,只不过增加了一个短路的效果
    即:如果左边已经判断为true,右边就无需继续判断

  6. 三目运算符
    格式:1 ? 2 : 3; 1号位置是一个表达式,如果1真取2号位置的值,1假取3号位置的值

  7. 赋值运算符
    = 是普通的赋值运算符,等号右边的值交给等号左边来保存
    += -= *= /= 这几种是复合赋值运算符,是一种简便写法,比如a+=30;相当于 a = a+30;
     

 

1.2 运算符速查表


CGB2108-Day03-Java运算符_第1张图片

package cn.tedu.basic;
/**本类用于取余运算符 */
public class TestOperator {

	public static void main(String[] args) {
		/**1.基本的 四则运算符  + - * /  */
		//测法除法与取余数
		System.out.println(35 / 10);//3,int/int->int
		/**2.%是一个取余符号,余数为几,运算结果就是几
		 * 整除 的话,取余结果就是0*/
		System.out.println(35 % 10);//5
		System.out.println(10 & 5 );//0
		
		//2.练习:求一个 两位数的十位与个位
		int x =59;
		System.out.println(59/10);//5,打印十位
		System.out.println(59%10);//9,打印 个位
		//3练习,求一个三位数的百位,十位与各位
		int y = 159;
		System.out.println(y/100);//1,打印百位
		System.out.println(y/10%10);//5,打印十位
		System.out.println(y%10);//9,打印个位

package cn.tedu.basic;
/**本类用于测试自增自减运算符*/
public class TestOperator2 {

	public static void main(String[] args) {
		/**自增自减运算符:++,相当于给变量本身的值+1
		 * 
		 * 自减运算符:--,相当于变量的值-1
		 * 前缀式:符号写在前,比如++a --a,先改变变量本身的值,在使用
		 * 后缀式:符号写在后,比如a++ a--,先使用变量,在改变变量本身的值
		 * */
		int a = 1;
		System.out.println(a);//1
		System.out.println(++a);//2,符号在前,先改变变量本身的值,在使用
		int b = 1 ;
		System.out.println(b++);//1,符号在后,先打印,在改变变量本身的值
		System.out.println(b);//2
		
		int c = 1;
		System.out.println(c--);//1,符号在后,先使用,再自减
		System.out.println(c);//0,因为上一行已经用完了,所以-1
		
		int d = 1;
		System.out.println(--d);//0,符号在前,先自减,在打印
		System.out.println(d);//0,刚刚减过了,不会重复减
		/**符号在前,先改变变量本身的值,在使用
		 * 符号在后,先使用,在改变变量本身的值*/
		/**前面的代码会对后面的代码产生影响*/
		/**自增自减运算符会改变变量本身的值
		 * 但是普通的四则运算符不会改变变量本身的值,只会改变算式的结果*/
		System.out.println(c);//c的初始值从0开始算
		//System.out.println(--c-c-c--);//1,相当于-1-(-1)-(-1)=-1+2
		
		//System.out.println(--c);//-1,符号在前,0自减变为-1
		//System.out.println(--c-c);//0,-1-(-1),算是结果为0
		//System.out.println(--c-c-c);//1,-1-(-1)-(-1),算式结果为1
		//System.out.println(--c-c-c--);//1,-1-(-1)-(-1),算式的结果为1,最后的--不影响本行
		//System.out.println(c);//-2,c的初始值为0,中间经历了2次自减,所以是-2
		int c1=2;
		System.out.println(--c1-c1-c1--);//2-1=1,1-2=-1
		int c2=3;
		System.out.println(--c2-c2-c2-c2-c2-c2--);//3-1=2,2-3=-1,-1-3=-4,-4-3=-7,-7-3=-10
		
		
		

	}

}
		

你可能感兴趣的:(java)