/**
*
* @author ERP
* @test 运算符
*/
public class Test {
public static void main(String[] args) {
/*一元运算*/
int num = 100;
System.out.println(++num); //++写在变量前面,调用变量之前,先加1
System.out.println(num++); //++写在变量后面,调用变量之后,再加1
System.out.println(num);
System.out.println(--num); //--写在变量前面,调用变量之前,先减1
System.out.println(num--); //--写在变量后面,调用变量之后,再减1
/*二元运算*/
/*算数运算*/
int a = 100;
float b = 2.5f;
b=(a+b); //两个变量的数据类型不同,取高精度的数据类型
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
int c = 3;
System.out.println(a%c);
System.out.println(a/c); //舍弃小数部分
/*关系运算*/
int d = 8;
int e = 3;
System.out.println(d>e);
System.out.println(d>=e);
System.out.println(d<e);
System.out.println(d<=e);
System.out.println(d==e);
System.out.println(d!=e);
boolean isTrue = (d>e);
/*逻辑运算符*/
System.out.println(!isTrue);
System.out.println((d==e)&&(d<=e));
System.out.println((d<=e)&(d<e));
System.out.println((d<=e)||(d==e));
System.out.println((d==e)|(d<=e));
/*位运算*/
System.out.println("位运算");
System.out.println(~d); //非 相应的位取反码,0变为1,1变成0
System.out.println(d&e);
System.out.println(d|e);
System.out.println(d^e);
System.out.println(d<<e);
System.out.println(d>>e);
/**
* && 与 & 的比较 (||和|的比较)
* 1、两个都可以作为逻辑运算,表示逻辑与(都为true结果才为true)
* 2、&可以作为位运算,而&&不能
* 3、&&在逻辑运算的时候,是短路与(如果前面的表达式有false,那么后面的表达式不会运行)
* &会运算所有的表达式
*/
int num1 = 100;
int num2 = 200;
boolean b1 = (num1>99) && (num2<99) && (num1++>100);
System.out.println("&&的运算结果:"+num1);
num1 = 100;
boolean b2 = (num1>99) & (num2<99) & (num1++>100);
System.out.println("&的运算结果:"+num1);
System.out.println(b1);
System.out.println(b2);
/*条件运算符(三元表达式)*/
int num3 = 100,num4 = 200;
int max = num3>num4 ? num3 : num4;
System.out.println(max);
int num5 = 300;
int num6 = (num5 == 0) ? 100 : num5; //num5不为0则取其自身值
System.out.println(num6);
boolean num7 = (num5 == 0) ? num5>0 : num5<0;
System.out.println(num7);
/*赋值运算*/
int num8 = 100;
num8 += 10; // num8 = num8 + 10
System.out.println(num8);
num8 = 100;
num8 -= 10; // num8 = num8 - 10
System.out.println(num8);
num8 = 100;
num8 *= 10; // num8 = num8 * 10
System.out.println(num8);
num8 = 100;
num8 /= 10; // num8 = num8 / 10 被除数不为0
System.out.println(num8);
num8 = 100;
num8 %= 10; // num8 = num8 % 10
System.out.println(num8);
/*三元运算的执行顺序验证*/
int num10 = 100;
int num11 = (num10 < 101) ? (--num10<99 ? 100 : 201) : 200;//自左向右
System.out.println(num11);
num10 = 100;
num11 = (num10 < 99) ? 200 : num10 > 99 ? 300 : 400;//自右向左
System.out.println(num11);
}
}
以上是Java学习中的运算符和表达式基础,这里我以代码的形式呈现给大家,可以更简单的掌握各运算的意义。此文不全,忘补充。