mirror of https://gitee.com/gaohongy/Java-Book.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
总的来说,Java的条件判断(if)与选择语法与C一致。这一章我们通过几个例子来说明Java的上述语法,同时对一些Java的特性进行讲解。
1. 布尔类型与布尔计算
Java的布尔类型和C保持一致,基本的运算符也和C保持一致。
注意,布尔类型是 boolean,并有大写的布尔类型Boolean。这两个类型是不同的,小写的是基本类型(与C一致);大写的表示封装类型(类)是面向对象的类型。
1.1. 关系运算
1.2. 逻辑运算
1.3. 位运算
位运算二进制运算,和C中的位运算是一致的,是指把数字按照二进制的每一位进行运算。
例如:0B 和 0A 代表两个byte,转换成位是:
字节1(0x08) | 字节2(0x07) | 说明 |
---|---|---|
0000-1000 | 0000-0111 | 对应的二进制 |
位操作 | 结果 | 说明 |
---|---|---|
0x0A & 0x0B | 0000-1000 | 按照每一位对应进行与运算的结果 |
0x0A | 0x0B | 0000-1111 | 按照每一位对应进行或运算的结果 |
位操作作为了解。
1.4. 选择语句
略
1.5. 运算优先级
尽量使用括号
1.6. 补充例子
1.6.1. 如何循环的读取输入
这个方式在书上没有讲,在考试中可能会遇到这种情况。
import java.util.Scanner;
/**
* 循环读取,一直到某个特定的条件退出
*
* @author Danny
*
*/
public class LoopRead {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input a sequence of integer, divided by space.");
int sum = 0;
while (true) {
if (scanner.hasNextInt()) {
sum += scanner.nextInt();
} else {
break;
}
}
scanner.close();
System.out.println("The sum is: " + sum);
}
}
试一试运行该代码,你可以一直用空格分割,来输入多个整数,这时程序并没有任何的回应;当你输入一个非整形的字符,例如‘a’,这时程序退出,并打印刚刚输入整数的累加和。
想一想为什么?重点就在于 scanner.hasNextInt()
会一直判断下一个输入是否是整数;如果是整数,就返回真;如果不是整数,就返回假,然后执行break函数。
可以在if语句前面设置断点,然后使用调试工具进行单步跟踪。你会发现,你输入的时候并不会中断;当敲入回车的时候,调试器才会中断;这证明了Scanner是按照一个回车来一次性的读取输入字符串的;如果没有回车,就会一直等待(这是一个阻塞操作)。
这个例子很有意思,通过调试过程可以让你更清楚知道Java的每个函数是如何运行的,以及它们都有什么特性。
2. 重点
本章的内容中的大部分技术要点都与C保持一致,因此之需要掌握几个例子就可以了:
- 以下几个例子都比较简单,需要掌握:
- AdditionQuiz
- SubtractionQuiz
- ComputeAndInterpretBMI
- ComputeTax
- ChineseZodiac
- 掌握本页的补充例子,循环读取输入。考试的时候经常会用到。