This commit is contained in:
2023-03-03 22:25:33 +08:00
parent e0c1ea4129
commit f2a40a910e
3 changed files with 101 additions and 3 deletions
+24 -2
View File
@@ -24,7 +24,21 @@ Java的布尔类型和C保持一致,基本的运算符也和C保持一致。
### 1.3. 位运算
位运算二进制运算,和C中的位运算是一致的,是指把数字按照二进制的每一位进行运算。
例如:0B 和 0A 代表两个byte,转换成位是:
| 字节1(0x08) | 字节2(0x07) | 说明 |
| ----------- | ----------- | ------------ |
| 0000-1000 | 0000-0111 | 对应的二进制 |
| 位操作 | 结果 | 说明 |
| ------------ | --------- | ------------------------------ |
| 0x0A & 0x0B | 0000-1000 | 按照每一位对应进行与运算的结果 |
| 0x0A \| 0x0B | 0000-1111 | 按照每一位对应进行或运算的结果 |
**位操作作为了解。**
### 1.4. 选择语句
@@ -32,7 +46,7 @@ Java的布尔类型和C保持一致,基本的运算符也和C保持一致。
### 1.5. 运算优先级
尽量使用括号
**尽量使用括号**
### 1.6. 补充例子
@@ -67,6 +81,14 @@ public class LoopRead {
}
```
试一试运行该代码,你可以一直用空格分割,来输入多个整数,这时程序并没有任何的回应;当你输入一个非整形的字符,例如‘a’,这时程序退出,并打印刚刚输入整数的累加和。
想一想为什么?重点就在于 `scanner.hasNextInt()` 会一直判断下一个输入是否是整数;如果是整数,就返回真;如果不是整数,就返回假,然后执行break函数。
**可以在if语句前面设置断点,然后使用调试工具进行单步跟踪。你会发现,你输入的时候并不会中断;当敲入回车的时候,调试器才会中断;这证明了Scanner是按照一个回车来一次性的读取输入字符串的;如果没有回车,就会一直等待(这是一个阻塞操作)。**
这个例子很有意思,通过调试过程可以让你更清楚知道Java的每个函数是如何运行的,以及它们都有什么特性。
## 2. 重点
本章的内容中的大部分技术要点都与C保持一致,因此之需要掌握几个例子就可以了: