Java中的运算符和表达式
表达式就是一个由运算符和操作数连接在一起形成的式子,表达式一定会有一个明确的运算结果
根据操作数的个数分为3类
1。单目运算符
2。双目运算符
3。三目运算符
根据运算符的功能来划分种类
算术运算符
+ - * / % ++ –
加运算符:是Java中唯一一个具有双重含义的运算符
拼字符串,求和
除运算符:整数除整数得到的结果还是整数,除不尽的数做为余数
如果需要得到小数的运算结果,有一个操作数是小数就可以
加加和减减是单目运算符
只能针对变量使用
前加(减)与后加(减)的区别在于表达式的运算结果是否产生变化,对于变量的变化来说没有差异
比较运算符
> < >= <= == !=
比较表达式的运算结果是布尔类型
逻辑运算符-操作数和运算结果都是逻辑类型
与 && (并且)
true && true = true
true && false = false
false && true = false
false && false = false
逻辑与运算只要有一个是false,整个表达式的结果就是false
或 || (或者)
true || true = true
true || false = true
false || true = true
false || false = false
逻辑或运算只要有一个是true,整个表达式的结果就是true
非 ! (不是)
非真即假,非假即真
条件运算符
位运算符
赋值运算符
ASCII码
关于转换:
自动转换:double->float->long->int->short,byte,char
强制转换:(类型)数据
*/
int x = 10;
int y = 3;
/*
double z = x + y;
System.out.println("和:" + (x + y));
System.out.println("和:" + z);
z = x - y;
System.out.println("差:" + z);
z = x * y;
System.out.println("积:" + z);
z = x / (double)y;
System.out.println("商:" + z);
z = x % y;
System.out.println("余:" + z);
System.out.println(x + 'a');
System.out.println((char)97);
System.out.println("x++这个表达式的运算结果:" + x++);
System.out.println("x++之后x的值:"+x);
x = 10;
System.out.println("++x这个表达式的运算结果:" + ++x);
System.out.println("++x之后x的值:"+x);
*/
/*
System.out.println( x > y );
System.out.println( x < y );
System.out.println( x >= y );
System.out.println( x <= y );
System.out.println( x == y );
System.out.println( x != y );
/
/
System.out.println( x>y && x>8 );
System.out.println( x>y && x<8 );
System.out.println( x<y && x>8 );
System.out.println( x<y && x<8 );
System.out.println( !(x>y || x>8) );
System.out.println( x>y || x<8 );
System.out.println( x<y || x>8 );
System.out.println( x<y || x<8 );
*/
//逻辑与和逻辑或的特殊情况
System.out.println( x>y && ++x>8 );
System.out.println("x=" + x);
System.out.println( x<y || ++x>8 );
System.out.println("x=" + x);
条件运算符
Java中的唯一的三目运算符
1 ? 2 : 3
1是一个产生布尔类型运算结果的表达式
2和3会根据1表达式结果来决定谁做为整个条件表达式的运算结果
如果表达式1成立,则选择表达式2的结果
如果表达式1不成立,则选择表达式3的结果
位运算符
赋值运算符
=
+= -= *= /= %= [ &= |= <<= >>= ]
*/
/*
小案例:根据所输入的成绩,输出是否及格的结果
*/
/*
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个成绩:");
int score = scanner.nextInt();
System.out.println(score>=60 ? "及格" : "不及格");
*/
/*
练习小案例:根据所输入的整数,输出是奇数还是偶数的结果
*/
/*
int x = 5;
int y = 1;
System.out.println( x&y );
System.out.println( x|y );
System.out.println( x^y );
System.out.println( x<<1 );
/
/
//使用最有效率的方式计算一个数的奇偶性
int x = 88888;
System.out.println((x&1)==1?“奇数”:“偶数”);
//计算器中的归零如何实现
System.out.println( x&0 );
//利用异或运算实现信息的加密解密
System.out.println( x ^ 100 ^ 10000);
System.out.println(97356 ^ 10000 ^ 100);
//使用最有效率的方式求2的3次幂的结果
System.out.println(2<<2);
*/
int i = 100;
System.out.println(i=200);
System.out.println(i);
i *= 10;
//等同于
//i = i * 10;
System.out.println(i);
MathDemo
System.out.println(Math.abs(-100));
System.out.println(Math.ceil(10.5));
System.out.println(Math.floor(10.5));
System.out.println(Math.max(100, 10));
System.out.println(Math.min(100, 10));
System.out.println(Math.pow(2, 3));
System.out.println(Math.sqrt(16));
System.out.println(Math.sin(30));
System.out.println(Math.round(10.5));
System.out.println(Math.log10(10));
//求[0,1)之间的随机小数
System.out.println(Math.random());
//求[0,100)之间的随机整数
System.out.println((int)(Math.random()*100));
//求[1,100]之间的随机整数
System.out.println((int)(Math.random()*100) + 1);
//练习:求[1,36]之间的随机整数