Skip to content

Commit d0a2235

Browse files
committed
Modify Something not clear
1 parent ac01448 commit d0a2235

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

Lesson05/Lesson05.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,9 @@
9494

9595
![priority](./priority.png)
9696

97-
这张图中,操作符优先级从下到上越来越高。我觉得大家可以不用死记硬背,主要记住**赋值操作符的优先级是最低的**就好了,其实考试中也基本没有涉及过这个知识点。在编程实践中,如果你不确定哪个更优先,**使用括号把你想要先算的括起来就好啦**
97+
这张图中,操作符优先级从下到上越来越高,也就是说,表中上方的操作符一般会在下方的操作符之前被运算。我觉得大家可以不用死记硬背,主要记住**赋值操作符的优先级是最低的**就好了,其实考试中也基本没有涉及过这个知识点。在编程实践中,如果你不确定哪个更优先,**使用括号把你想要先算的括起来就好啦**
9898

99-
大家可千万不能忽视了这个的重要性,我们再来看个例子吧:
99+
我们再来看个例子吧:
100100

101101
```java
102102
int a = 1, b = 2;
@@ -109,7 +109,7 @@ System.out.print("a+b = " + a+b);
109109
a+b = 12
110110
```
111111

112-
为什么会这样呢?要注意的是,我们在优先级相同的情况下是从左往右算的,也就是说,`a+b`的结果并不是先算的,先算的是`"a+b = " + a`,这是一个字符串拼接操作,这个东西的结果是一个新字符串`"a+b = 1"`。然后这个字符串又和b相加,也是一个字符串拼接操作,于是就出现了的结果`a+b = 12`,所以这种时候一定要在后面的`a+b`加上一个小括号让它先计算哦~
112+
为什么会这样呢?要注意的是,我们在优先级相同的情况下是从左往右算的,也就是说,`a+b`的结果并不是先算的,先算的是`"a+b = " + a`,这是一个字符串拼接操作,这个东西的结果是一个新字符串`"a+b = 1"`。然后这个字符串又和b相加,也是一个字符串拼接操作,于是就出现了的结果`a+b = 12`。这时其实在`a+b`上加上一个小括号让它先计算就也可以了哦~
113113

114114

115115

@@ -121,15 +121,15 @@ a+b = 12
121121
System.out.println(23/5);
122122
```
123123

124-
或许你期望的答案是`4.6`,但是程序就像爱情一样求而不得、模模糊糊。他只告诉你答案是`4`,却并没有告诉你精确答案。这是因为你是用两个int类型的数进行运算的,所以程序认为你的结果也应该是一个int类型的数,所以它只显示了答案的整数部分。
124+
或许你期望的答案是`4.6`,但是程序就像爱情一样求而不得、模模糊糊。他只告诉你答案是`4`,却并没有告诉你精确答案。这其实是因为你是用两个int类型的数进行运算的,所以程序认为你的结果也应该是一个int类型的数,所以它只显示了答案的整数部分。
125125

126126
为了得到精确的结果,你可以直接使用double类型的直接量,加上一个`.0`
127127

128128
```java
129129
System.out.println(23.0/5);
130130
```
131131

132-
我们前面已经学到浮点型直接量会是double类型的,而在一个二元运算中,其中一个是整数,另一个是浮点数时,Java会**自动**将整数转换为浮点型,再进行运算,在浮点运算里,浮点数的精确答案就能表示出来了。这就是Java的**自动类型转换**
132+
我们前面已经学到浮点型直接量会是double类型的,而在一个二元运算中,其中一个是整数,另一个是浮点数时,Java会**自动**将这个整数转换为浮点型的数,再进行运算,在浮点运算里,浮点数的精确答案就能表示出来了。这就是Java的**自动类型转换**
133133

134134
你也可以用到**强制类型转换**的方式:
135135

@@ -143,11 +143,11 @@ System.out.println((double)23/5);
143143

144144
我们来概念性地总结一下:
145145

146-
类型转换的过程是将一种类型转换为另一种数据类型的操作。大家还记得各种类型所能表示的数的范围吧,Java可以**自动**地将小范围类型拓宽为大范围的类型(为什么?),这就是**自动类型转换**。但是反过来则一定需要**强制类型转换**,比如`int p = (int)1.7;`,这会保留整数部分`1`作为结果赋值给int类型的变量`p`
146+
类型转换的过程是将**一种类型转换为另一种数据类型的操作**。大家还记得各种类型所能表示的数的范围吧,Java可以**自动**地将小范围类型拓宽为大范围的类型(为什么?),这就是**自动类型转换**。但是反过来则一定需要**强制类型转换**,比如`int p = (int)1.7;`,这会保留整数部分`1`作为结果赋值给int类型的变量`p`
147147

148148

149149

150-
以下是一些注意事项:
150+
以下是一些注意事项(好像只有一条诶)
151151

152152
- 类型转换是不会改变被转换变量本身的类型的,只会改变变量在运算时使用的值。因为变量一经声明,数据类型是绝对不会改变的
153153

0 commit comments

Comments
 (0)