# 问题和练习：运算符

> 原文： [https://docs.oracle.com/javase/tutorial/java/nutsandbolts/QandE/questions_operators.html](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/QandE/questions_operators.html)

## 问题

1.  请考虑以下代码段。

    ```
    arrayOfInts[j] &gt; arrayOfInts[j+1]

    ```

    代码包含哪些运算符？
2.  请考虑以下代码段。

    ```
    int i = 10;
    int n = i++%5;

    ```

    1.  代码执行后`i`和`n`的值是多少？
    2.  如果不使用后缀增量运算符（`i++`），使用前缀版本（`++i)`），`i`和`n`的最终值是什么？
3.  要反转`boolean`的值，您将使用哪个运算符？
4.  哪个运算符用于比较两个值，`=`或`==`？
5.  解释以下代码示例：`result = someCondition ? value1 : value2;`

## 演习

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);
         }
    }

    ```

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"
        }
    }

    ```

[检查你的答案](answers_operators.html)