问题和练习的答案:运算符
问题答案
- 考虑以下代码片段:
arrayOfInts[j] > arrayOfInts[j+1]
问题: 代码包含哪些运算符?
答案: >
,+
- 考虑以下代码片段:
int i = 10;
int n = i++%5;
-
问题: 执行代码后
i
和n
的值是什么?
答案:i
为 11,而n
为 0.- 问题: 如果您使用前缀版本(
++i)
)而不是后缀增量运算符(i++
),则i
和n
的final值是多少?
答案:i
是 11,而n
是 1.
- 问题: 如果您使用前缀版本(
-
问题: 要反转
boolean
的值,您将使用哪个运算符?
答案: 逻辑补运算符“!”。 -
问题 :哪个运算符用于比较
=
或==
两个值?
答案:==
运算符用于比较,而=
用于分配。 -
问题: 解释以下代码示例:
result = someCondition ? value1 : value2;
答案: 这段代码应理解为:“如果someCondition
是true
,请将value1
的值分配给result
。否则,将value2
的值分配给result
。”
Exercises
- 更改以下程序以使用复合分配:
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);
}
}
- 在下面的程序中,解释为什么将值“ 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”。