演示算术运算符的使用
package Javacode.chapter04;
/*
演示算术运算符的使用
*/
public class ArithmeticOperator {
public static void main(String[] args) {
// /
System.out.println(10/4);//从数学来看是2.5,Java中 2 去掉小数点
System.out.println(10.0/4);//10.0是double,把整体的精度提升
double d=10/4;//结果为2,但是前面有double就把结果值赋给double变成double类型2.0
System.out.println(d);
// % 取模,取余
//在%的本质看一个公式 a % b = a - a / b * b
//-10 % 3=> -10 -(-10)/ 3 * 3=-10+9=-1
// 10 % -3 =10 - 10 /(-3) * (-3) =10-9=1
System.out.println(10%3);//1
System.out.println(-10 % 3);//-1
System.out.println(10 % -3);//1
//++的使用
int i=10;
i++;//如果独立使用i++和++i没有区别,等于i=i+1
System.out.println(i);//11
/*
作为表达式使用
前++:++i先自增后赋值
后++:i++先赋值后自增
*/
int j=8;
//int k=++j;//等价于j=j+1;k=j
int k=j++;//等价于k=j,j=j+1
System.out.println("k="+k+"'j="+j);
}
}
面试题
package Javacode.chapter04;
public class ArithmeticOperatorExercicise01 {
public static void main(String[] args) {
//面试题
int m=1;//m->1
m=m++; //规则使用临时变量:(1)temp=m;m=1,把临时变量赋给temp,temp=1
//(2)m=m+1,m=2
//(3)m=temp,把temp的值赋给m。m=1
System.out.println(m);
int i=1;
i=++i;//规则使用临时变量:(1)i=i+1,i=2
//(2)temp=i;i=1,把临时变量赋给temp,temp=2
//(3)2=temp,把temp的值赋给i。i=2
System.out.println(i);
}
}
逻辑运算符
package Javacode.chapter04;
public class ArithmeticOperatorExercicise02 {
public static void main(String[] args) {
/*
int x=5;
int y=5;
if(x++==6 & ++y==6){//x++先比较再自增,false ++y先自增再比较true
x=11;
}
//虽然前面为false,但是后面的++y依然执行(&)
System.out.println("x="+x+",y="+y);//6,6
int x=5;
int y=5;
if(x++==6 && ++y==6){//x++先比较再自增,false ++y先自增再比较true
x=11;
}
//前面为false,后面的++y不执行(&&)短路运算符
System.out.println("x="+x+",y="+y);//6,5
int x=5;
int y=5;
if(x++==5 | ++y==5){//x++先比较再自增,false ++y先自增再比较true
x=11;
}
//虽然前面为false,但是后面的++y依然执行(|)
System.out.println("x="+x+",y="+y);//11,6
int x=5;
int y=5;
if(x++==5 || ++y==5){//x++先比较再自增,false ++y先自增再比较true
x=11;
}
//前面为false,后面的++y不执行(||)短路运算符
System.out.println("x="+x+",y="+y);//11,5
*/
boolean x=true;
boolean y=false;
short z=46;
if((z++==46)&&(y=true)) z++;//z=48,把true赋值给y。y=true
if((x=false) || (++z==49)) z++;//把false赋值给x
System.out.println("z="+z);
}
}
赋值运算符
赋值运算符的分类:
-
基本运算符 = int a=10
-
复合赋值运算符
+=,-=,*=,/=,%=
a+=b;(a=a+b)