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

总的来说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保持一致因此之需要掌握几个例子就可以了

  1. 以下几个例子都比较简单,需要掌握:
    1. AdditionQuiz
    2. SubtractionQuiz
    3. ComputeAndInterpretBMI
    4. ComputeTax
    5. ChineseZodiac
  2. 掌握本页的补充例子,循环读取输入。考试的时候经常会用到。