文档

Java™ 教程-Java Tutorials 中文版
Trail: Learning the Java Language
Lesson: Language Basics
主页>学习 Java 语言>语言基础

问题和练习的答案:运算符

问题的答案

  1. 考虑下面的代码片段:
    arrayOfInts[j] > arrayOfInts[j+1]
    
    问题:代码包含哪些运算符?
    答案:>, +

  2. 考虑下面的代码片段:
    int i = 10;
    int n = i++%5;
    
    1. 问题:代码执行后,in 的值是多少?
      答案:i 为 11,n 为 0。

    2. 问题:如果不是使用后缀递增运算符(i++),而使用前缀版本(++i),in 的最终值是什么?
      答案:i 为 11,n 为 1。

  3. 问题:要反转 boolean 的值,你将使用哪个运算符?
    答案:逻辑补码运算符 "!"。
  4. 问题:哪个运算符用于比较两个值 ===
    答案:== 运算符用于比较,= 用于赋值。
  5. 问题:解释下面的代码示例:result = someCondition ?value1 : value2;
    答案:此代码应读作:“如果 someConditiontrue,将 value1 的值赋给 result。否则,将 value2 的值赋给 result。“

练习

  1. 更改以下程序以使用复合赋值:
    class ArithmeticDemo {
    
        public static void main (String[] args){
              
            int result = 1 + 2; // result is now 3
            System.out.println(result);
    
            result = result - 1; // result is now 2
            System.out.println(result);
    
            result = result * 2; // result is now 4
            System.out.println(result);
    
            result = result / 2; // result is now 2
            System.out.println(result);
    
            result = result + 8; // result is now 10
            result = result % 7; // result is now 3
            System.out.println(result);
    
        }
    }
    

    这是一个解决方案:

    class ArithmeticDemo {
    
        public static void main (String[] args){
            int result = 3;
            System.out.println(result);
    
            result -= 1; // result is now 2
            System.out.println(result);
    
            result *= 2; // result is now 4
            System.out.println(result);
    
            result /= 2; // result is now 2
            System.out.println(result);
    
            result += 8; // result is now 10
            result %= 7; // result is now 3
            System.out.println(result);
    
        }
    }
    
  2. 在下面的程序中,解释为什么连续两次打印值 "6":
    class PrePostDemo {
        public static void main(String[] args){
            int i = 3;
            i++;
            System.out.println(i);    // "4"
            ++i;                     
            System.out.println(i);    // "5"
            System.out.println(++i);  // "6"
            System.out.println(i++);  // "6"
            System.out.println(i);    // "7"
        }
    }
    
    代码 System.out.println(++i); 的计算结果为 6,因为前缀版本 ++ 的计算结果为递增值。下一行,System.out.println(i++); 计算当前值(6),然后递增 1。所以 "7" 直到下一行才会被打印出来。

Previous page: Questions and Exercises: Operators