Java学习第二节第2章

第二章 运算符

2.1 算数运算符

在这里插入图片描述
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

public static void main(String[] args) {
 int i = 1234; 
 System.out.println(i/1000*1000); //计算结果是1000 
 }

++ 运算,变量自己增长1。反之, – 运算,变量自己减少1,用法与 ++ 一致。

独立运算: 变量在独立运算时, 前++ 和 后++ 没有区别 。

变量 前++ :例如 ++i 。
变量 后++ :例如 i++ 。

混合运算:
和其他变量放在一起, 前++ 和 后++ 就产生了不同。
变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。

public static void main(String[] args) {
 int a = 1; 
 int b = ++a; 
 System.out.println(a);//计算结果是2   
 System.out.println(b);//计算结果是2 
 }

变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b 的结果是1。
注意:只有变量才能使用自加自减运算符,比如30++这个语句是不对的。

public static void main(String[] args) {
 int a = 1; 
 int b = a++; 
 System.out.println(a);//计算结果是2 
 System.out.println(b);//计算结果是1 
 }

+ 符号在字符串中的操作:
+ 符号在遇到字符串的时候,表示连接、拼接的含义。
“a”+"b"的结果是“ab”,连接含义
注意:任何数据类型与字符串连接都会变成字符串,比如Java+20 结果为Java20

优先级问题:
Java+20+30结果为多少?
答案为Java2030而不是Java50,这里就涉及到运算优先级的问题。
如果Java+(20+30)结果即为Java50
运算优先级有十多种,没有必要去背诵,只要记住小括号里面的优先计算就可以了,不确定优先级时使用小括号对数据进行处理即可。

public static void main(String[] args){ 
System.out.println("5+5="+5+5);//输出5+5=55 
}

2.2 赋值运算符

在这里插入图片描述
赋值运算符,就是将符号右边的值,赋给左边的变量。
注意:只有变量才能使用赋值运算符

public static void main(String[] args){ 
int i = 5; 
i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i 
System.out.println(i); //输出结果是10 
}

关于赋值运算符需要理解的一点
赋值运算符隐含了一个强制类型转换,下面我们看一个例子
在这里插入图片描述
num=num+1中,1为int类型,num为byte类型,编译过程中并没有报错,说明进行了强制类型转换,这是赋值运算符所隐含的,是编译器的功劳。

2.3 比较运算符

在这里插入图片描述
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。
程序当中不允许1<x<3这种写法!

public static void main(String[] args) { 
System.out.println(1==1);//true 
System.out.println(1<2);//true 
System.out.println(3>4);//false 
System.out.println(3<=4);//true 
System.out.println(3>=4);//false 
System.out.println(3!=4);//true }

2.4 逻辑运算符

在这里插入图片描述
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false

扫描二维码关注公众号,回复: 11430470 查看本文章
public static void main(String[] args) { System.out.println(true && true);//true 
System.out.println(true && false);//false 
System.out.println(false && true);//false,右边不计算 
System.out.println(false || false);//falase 
System.out.println(false || true);//true 
System.out.println(true || false);//true,右边不计算 
System.out.println(!false);//true }
逻辑运算符的短路现象: 当&&与| |同时出现时,如果前面的运算符已经能够决定结果,那就没有必要再进行后面的运算了。
举个例子
System.out.println(4>5&&++a<19);

这条语句中,前面的4>5结果显然是false,根据&&运算符即可知道结果为false,没有必要进行后面的运算了,这种现象称为 短路现象

2.5 三元运算符

一元运算符:只有一个数据就可以进行操作,如++,–,!;
二元运算符:需要两个数据才可以进行操作,如:+,-,==,!=‘等等
三元运算符:需要三个数据才可以进行操作。
三元运算符格式:

数据类型 变量名 = 布尔类型表达式?结果1:结果2

三元运算符计算方式:
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。

public static void main(String[] args) {
 int i = (1==2 ? 100 : 200); 
 System.out.println(i);//200 
 int j = (3<=4 ? 500 : 600); 
 System.out.println(j);//500 
 }

注意:三元运算符必须同时保证表达式A和表达式B都符合左侧数据类型要求,
错误例子:int max=2 > 3 ? 2.5 : 5;
有同学可能会说,这个2>3肯定不成立,那么肯定取5,类型一样怎么就错了呢?
这是因为为了理解方便使用了具体数字作为例子,三元运算符都是针对变量来的,如果是具体数字那么又何必使用三元运算符呢,因为无法知道变量的具体数值,所以我们使用三元运算符时要保证前后数据类型一致。

猜你喜欢

转载自blog.csdn.net/aa1832090510/article/details/107430142
今日推荐