目录
介绍:
注意:
*_%的本质,可以看成一个公式 a % b = a - a/b b_
当a%b是小数时,公式= a-(int)a/b*b
有小数参与运算时,得到的结果是一个近视值
-10.5%3= -10.5-(-10)/3*3=-10.5+9=-1.5
public class ArithmeticOperator{
public static void main(String[] args){
System.out.println(10.0/4);//2.0
double d = 10 / 4;//JAVA中 10/4 = 2,2->=2.0
System.out.println(d);//在%的本质,可以看成一个公式 a % b = a - a/b *b
//-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
System.out.println(-10 % -3); //-1
}
}
题目:
定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
public class ArithmeticOperatorExercise03{
public static void main(String[] args){
//1.需求:
//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:
//5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
//2.思路分析
//(1)有一个变量保存摄氏温度 double sheshi,一个变量保存华氏温度 double huashi
// 要考虑java的特性
//(2)根据给出的公式 5/9*(华氏温度-100)
// (3) 将得到的结果保存到 double sheShi
//3.走代码
double huaShi = 1234.6;
double sheShi = 5 / 9.0 * (huaShi - 100);
System.out.println("华氏温度:" + huaShi + "\n"+ "对应的摄氏温度:" + sheShi);
}
}
介绍:用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean
说明逻辑运算规则:
a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
public class LogicOperator{public static void main(String[] args){
//&& 和 & 的案例
int age = 50 ;
//短路与
if(age > 20 && age < 90){
System.out.println("ok100");
}
//逻辑与&使用
if(age > 20 & age < 90){
System.out.println("ok200");
}
//区别
int a = 4;
int b = 9;
//对于&&短路与而言,第一个条件为false,第二个条件不判断
//对于&而言,第一个条件为false,第二个条件会判断
if(a < 10 && ++b < 50){
System.out.println("ok300");//输出,
}
System.out.println("a=" + a +" " + "b=" + b);// 4 10
if(a < 1 & ++b < 50){
System.out.println("ok400");
}
System.out.println("a=" + a +" " + "b=" + b);//4 11
}
}
a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false 、
a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
!a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 fal
注意:
! 非(取反) !条件 如果条件本身成立,结果为 false,否则为 true
public class InverseOperator {
//编写一个 main 方法
public static void main(String[] args) {
//! 操作是取反 T->F , F -> T
System.out.println(60 > 20); //T
System.out.println(!(60 > 20)); //F
//a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
boolean b = (10 > 1) ^ ( 3 > 5);
System.out.println("b=" + b);//T
}
}
a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为
介绍:赋值运算符就是将某个运算后的值,赋给指定的变量
复合运算会进行强制类型的转换
运算顺序从右往左
赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a
基本语法:
条件表达式 ? 表达式 1: 表达式 2;
运算规则:
如果条件表达式为 true,运算后的结果是表达式 1;
如果条件表达式为 false,运算后的结果是表达式 2;
public class AssignOperator{
public static void main (String []args){
// byte b = 3;
// b += 2; // b = (byte)b + 2;
// System.out.println(b);
int a = 10;
int b = 99;
int result = a < b ? a++:b--;//10,注意这里是后减减和后加加
System.out.println("result="+result);//10
System.out.println("a=" + a);//11
System.out.println("b=" + b);//99
}
}
表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
三元运算符可以转成 if--else 语句
运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
只有单目运算符(针对一个数进行操作的)、赋值运算符是从右向左运算的。
一览表, 不要背,使用多了,就熟悉了
优先级:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章