java基础--运算符
算数运算符
package week01;
public class Operator {
public static void main(String[] args) {
//最高精度都是int 所以 答案是2
System.out.println(10/4);
//高度精度还是int但是算完了还要赋值给double类型所以是2.0
double d = 10/4;
System.out.println(d);
//在java % 的本质是 a - a / b * b;
// a/b除数 再*b就是除去了多少的数字,最后用总数减去就是余数
System.out.println(10%3);
System.out.println(-10%3);
//10 - 10/(-3)*(-3)
System.out.println(10%-3);
System.out.println(-10%-3);
//总结前面的如果是负数拿结果就是负数,因为你a-(...),a是绝对值最大的哇,怎么都掰不过来的
//自增表达式
int j = 8,i = 8;
int k = j++;//k = j,j = j + 1;
int h = ++i;//i = i + 1,h = i;
System.out.println(k + +h);
//练习题
int p = 1;
p = p ++;//p = 1,p = p + 1 ×
//程序执行的时候会有一个temp,temp = i,i = i + 1;i = temp;
System.out.println(p);
int g = 1;
g = ++g;//g = g + 1,temp = g,g = temp;
System.out.println(g);
}
}
关系运算符
逻辑运算符号
package week01;
public class LogicOperator {
public static void main(String[] args) {
//短路与,逻辑与
int a = 1;
int b = 9;
if( a > 5 && ++b < 5)
{
System.out.println(OK111);
}
System.out.println(a = + a + b = + b);
if(a > 5 & ++b < 5)
{
System.out.println(OK222);
}
System.out.println(a = + a + b = + b);
//两者的虽然都可以进行判断但是短路呢短路,一个不通过就直接短路不运行了,但是&不是这样子的他是都进行判断不会终止的
//短路或者,逻辑或
int c = 1;
int d = 9;
if( c < 5 || ++d < 5)
{
System.out.println(OK333);
}
System.out.println(c = + c + d = + d);
if(c < 5 | ++d < 5)
{
System.out.println(OK444);
}
System.out.println(c = + c + d = + d);
//还是相同道理短路或判断完第一个如果正确就不判断了
//^逻辑异或
//相等就是false,不相等是true
System.out.println((10 > 1) ^ (1 > 6));
}
}
赋值运算符
public static void main(String[] args) {
//复合运算符可以自动转换数据类型
byte b = 2;
b += 2;
//等价于b =(byte)(b + 2);
System.out.println(b);
//包括b++也是同理底层有一个类型转换
}
三元运算符
package week01;
public class TernaryOperator {
public static void main(String[] args) {
int a = 10;
int b = 99;
int res = a > b ? a++ : b--;//等于了99,然后才是b = b - 1;
//三元运算的话还是得运算的不会终止的
System.out.println(res + + b + + a);
//三元运算符底层就是if else 语句 ,你可以想一想if else语句肯定判断完了之后执行条件下的语句
int l = (int) (a > b ? 1.1 : 3.4);
System.out.println(l);
}
}