问题

1.考虑以下代码片段。

  1. arrayOfInts[j] > arrayOfInts[j+1]

该代码包含哪些运算符?
2.考虑以下代码片段。

  1. int i = 10;
  2. int n = i++%5;
  1. 代码执行后in之后的值是什么?
  2. in最终值是什么,如果不是使用后缀增量运算符(i++),您可以使用前缀版本(++i))吗?

3.要反转boolean值,您将使用哪个运算符?
4.使用哪个运算符比较两个值,===
5.解释以下代码示例:

  1. result = someCondition ? value1 : value2;

练习题

1.更改以下程序以使用复合赋值:

  1. class ArithmeticDemo {
  2. public static void main (String[] args){
  3. int result = 1 + 2; // result is now 3
  4. System.out.println(result);
  5. result = result - 1; // result is now 2
  6. System.out.println(result);
  7. result = result * 2; // result is now 4
  8. System.out.println(result);
  9. result = result / 2; // result is now 2
  10. System.out.println(result);
  11. result = result + 8; // result is now 10
  12. result = result % 7; // result is now 3
  13. System.out.println(result);
  14. }
  15. }

2.在下面的程序中,解释为什么将值“ 6”连续打印两次:

  1. class PrePostDemo {
  2. public static void main(String[] args){
  3. int i = 3;
  4. i++;
  5. System.out.println(i); // "4"
  6. ++i;
  7. System.out.println(i); // "5"
  8. System.out.println(++i); // "6"
  9. System.out.println(i++); // "6"
  10. System.out.println(i); // "7"
  11. }
  12. }

问题答案

  1. 问题:代码包含哪些运算符?
    答: >+

    1. 问题:代码执行后in之后的值是什么?
      答案: i是11,n是0。
    2. 问:in最终值是什么,如果不是使用后缀增量运算符(i++),您可以使用前缀版本(++i))吗?
      答案: i是11,n是1。
  2. 问题:.要反转boolean值,您将使用哪个运算符?
    答:逻辑补码运算符“!”。
  3. 问题:哪个运算符用于比较两个值,=或者==
    答:==被用于比较,=用于赋值。
  4. 问题:解释以下代码示例:result = someCondition ? value1 : value2;
    答案:该代码应读为:“如果someConditiontrue,则将value1的值赋值给result。否则,将value2的值赋值给result。”

    练习题答案

    1.这是一种解决方案:

    1. class ArithmeticDemo {
    2. public static void main (String[] args){
    3. int result = 3;
    4. System.out.println(result);
    5. result -= 1; // result is now 2
    6. System.out.println(result);
    7. result *= 2; // result is now 4
    8. System.out.println(result);
    9. result /= 2; // result is now 2
    10. System.out.println(result);
    11. result += 8; // result is now 10
    12. result %= 7; // result is now 3
    13. System.out.println(result);
    14. }
    15. }

2.

  1. class PrePostDemo {
  2. public static void main(String[] args){
  3. int i = 3;
  4. i++;
  5. System.out.println(i); // "4"
  6. ++i;
  7. System.out.println(i); // "5"
  8. System.out.println(++i); // "6"
  9. System.out.println(i++); // "6"
  10. System.out.println(i); // "7"
  11. }
  12. }

该代码的System.out.println(++i);计算结果为6,因为前缀版本的++计算结果为递增值。下一行System.out.println(i++);计算为当前值(6),然后加1。因此,直到下一行才打印“ 7”。