Day9
运算符
运算符大致分为7种:算术运算符、关系运算符、位运算符、逻辑运算符、三元,赋值运算符,其他。
| 算术运算符 | +-*/,% ++ -- |
|---|---|
| 关系运算符 | < > <= >= == != |
| 逻辑运算符(针对布尔值) | && !|| |
| 位运算(针对于值,& |可以对布尔) | & !^(只给整数用) ~ << >> |
| 赋值运算 | = += -= *= /= %= |
| 三元 | ?()😦) |
| 其他 | . () [] instanceof(判断对象与类的关系) |
注释:
-
浮点型不能用==(严格比较)比较,精度问题。用Math.abs()例如Math.abs(a-b)[绝对值]<1e-9(这个自定按需求定),注:math.abs()是放宽,精确使用BigDecimal(存储)。比较字符串是否相等用。.equals()。
-
基本类型再使用算术运算符的时候,结果类型由最高级类型决定,整数/整数为小数时,因为类型由最高决定,故为整数但是整数会直接去掉小数部分。
-
浮点型存储是使用的是银行家策论,找最近可以存的数非十进制的四舍五入。
-
关系运算符只能返回true/false,位运算符返回0/1
-
运算优先级:一元(+-号) > "+-*/" > "+-" > 关系大小比较符 > 相等比较符 > '&' > '^' >'|' >&& >||>?()😦) >赋值 (注:不清楚优先级加()最好)
短路运算
短路运算存在在布尔关系运算符中,表现为完成判断后不执行之后语句。
int c = 5;
boolean a = (c<4)&&(c++<4);/* c<4已经为假故不执行后面语句,所以c++<4并未执行故,c并没有+1.
注:& |可以作用布尔,且作用时返回值变为ture/false,作用与&&,||作用一样,但不会短路。
扩展:String.valueof();可将任何东西转化为字符串,可以单独使用内部对象,用完丢失不存储,无局部变量无法引用。
今日训练代码
public class DAY9 {
static int a =10;
public static void main(String[] args)
{
int a =10;
int b =15;
double c =2.56;
int s =10;
var y =10;//var一定得赋值且只能在局部中使用
char d ='s';
a= (int) Math.pow(2,3);//赋值反向double赋给a,是值适应数据类型(自动转)
System.out.println(c%a);
System.out.println((String.valueOf(d)));//任意转字符串
System.out.println(++c);//语句执行则要加
}
}
public class Day9Second {
public static void main(String[] args)
{
boolean b =true;
boolean c =true;
System.out.println("a&&b"+(b&&c));//字符串连接符优先级和二元一样,&&未用""故起作用,报错
System.out.println(1+2+'s'+2);//+在遇到字符或字符串才改变结果为3s2
System.out.println("\tsda");//'/t在引号内发挥作用输出不是\tsda,要转义\的作用
System.out.println("a&&b"+(b||c));
System.out.println("a&&b"+!(b||c));//+只可以连接一个结果或者一个字符或者字符串
int d =5;
boolean f =d>2&&++d==6;//不清楚优先级加()最好
System.out.print(f);
System.out.print(d);
}
}
浙公网安备 33010602011771号