昨天的知识点补充:
我在写Java代码时候出现代码错误,它说我类的名字variable,没有在Variable.java的文件声明,于是我就百度,后来发现,Java代码要求类的名字要和你建的文件名字一致,包括大小写!!!!!!!
一:算术运算符
运算符 | 运算规则 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +2 | 2 |
+ | 加 | 1+2 | 3 |
+ | 连接字符串 | “我”+“帅” | “我帅” |
- | 负号 | int a=4;-4 | -4 |
- | 减 | 2-1 | 1 |
* | 乘 | 2*3 | 6 |
/ | 除 | 5/2 | 2 |
% | 取模 | 5/2 | 1 |
++ | 自增 | int a=1;a++/++a | 2 |
– | 自减 | int b=3;a–/--a | 2 |
运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数。
我们在使用算术运算符时,记得要注意下列事项:
加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
整数做被除数,0不能做除数,否则报错。
/*
* 算术运算符
*/
public class Operator {
public static void main(String[] args) {
/*
* 常量使用算数运算符
*/
System.out.println(1+2);
/*
* 变量使用算数运算符
*/
int x = 1;
int y = 2;
//"+"作为加法运算使用
int z = x + y;
//"+"作为连接字符串使用
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
}
二:算数运算符++、–的使用
int a = 2;
int b = 2;
a++;
b--;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为3,b值为1;
++运算符,会在原有值的基础上自增1;
--运算符,会在原有值的基础上自减1。
int a = 3;
int b = 3;
++a;
--b;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为4,b值为2;
int a = 2;
int b;
b = a++ + 8;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为3,b值为10;
++,–运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;
int a = 2;
int b;
b = ++a + 8;
System.out.println(a);
System.out.println(b);
上面代码的输出结果a值为3,b值为11;
++,–运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。
三:赋值运算符
运算符 | 运算规则 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | int a=3 | 3 |
+= | 加后赋值 | int a=2,a+=1 | 3 |
-= | 减后赋值 | int a=2,a-=1 | 1 |
*= | 乘后赋值 | int a=2,a*=2 | 4 |
/= | 整除后赋值 | int a=2,a/=2 | 1 |
%= | 取模后赋值 | int a=2,a%=2 | 0 |
/*
* 赋值运算符
* +=, -=, *=, /=, %= :
* 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
* 注意:赋值运算符左边必须是变量
*/
public class Operator2 {
public static void main(String[] args) {
byte x = 5;
x += 10;// 相当于 x = (byte)(x+20);
System.out.println(x);
}
}
结果:x=15
四:比较运算符
运算符 | 运算规则 | 示例 | 结果 |
---|---|---|---|
== | 相当于 | 4==3 | False |
!= | 不等于 | 4!= | True |
< | 小于 | 4<3 | False |
> | 大于 | 4>3 | True |
<= | 小于等于 | 4<=3 | False |
>= | 大于等于 | 4>=3 | True |
赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下:
赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的。
int a = 1;
int b = 2;
System.out.println( a=b );
System.out.println( a==b );
上面代码输出的结果第一个值为1,第二个值为false。
五:逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。
运算符 | 运算规则 | 示例 | 结果 |
---|---|---|---|
& | 与 | false&true | False |
∣ | 或 | false&true | True |
∧ | 异或 | false∧true | True |
! | 非 | !true | False |
&& | 短路与 | false&&true | False |
∣∣ | 短路或 | false∣∣true | True |
逻辑运算符的常规使用方式:
逻辑运算符通常连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。
boolean b = 100>10;
boolean b2 = false;
System.out.println(b&&b2); // 打印结果为 false
System.out.println(b||b2); //打印结果为 true
System.out.println(!b2); //打印结果为 true
System.out.println(b && 100>10); //打印结果为 true,本行结果的计算方式稍后讲解运算符优先级时解答
短路与&&:参与运算的两边数据,有false,则运算结果为false;
短路或||:参与运算的两边数据,有true,则运算结果为true;
逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。
六:三元运算符
格式:
(条件表达式)?表达式1:表达式2;
表达式:通俗的说,即通过使用运算符将操作数联系起来的式子,例如:
3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式。
3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。
其他表达式,不再一一举例。
三元运算符运算规则:
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。
方式一:
System.out.println( 2>1 ? “正确” : “错误” );
// 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印
方式二:
int a = 1;
int b = 2;
String result = (a==b) ? “相等” : “不相等”;
//三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result
方式三:
int n = (3>2 && 4>6) ? 100 : 200;
//三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n
七:运算符优先级
下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、–、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | ∣ |
12 | 逻辑与 | && |
13 | 逻辑或 | ∣∣ |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、∣=、<<=、>>=、>>>= |
int n = 3>4 ? 100 : 200;
这行的代码运算执行顺序我们来写一下:
1.执行 3>4操作,得到布尔类型false的结果
2.通过结果false,将对应的表达式2的结果200,作为运算的最终结果
3.把200 赋值给变量n
int a = 5;
int b = 3;
int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);
这段代码运算执行顺序我们也写一下:
1.小括号优先级高,我们先运算第一组小括号中的代码
1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”
先执行 a>b,得到结果true;
再执行 b>c,得到结果true;
最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true
2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++
先将变量c的原有值赋值给变量n2,即n2值为1;
再将变量c的值自增1,更新为2。
本文章是我从视频中学习所得,若有错误还望指点