文档

Java™ 教程
路径: 学习 Java 语言
课程: 语言基础
首页 > 学习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),然后再增加一。所以直到下一行,数字“7”才被打印出来。

上一页:问题和练习:运算符