问题
1.考虑以下代码片段。
arrayOfInts[j] > arrayOfInts[j+1]
该代码包含哪些运算符?
2.考虑以下代码片段。
int i = 10;
int n = i++%5;
- 代码执行后
i
和n
之后的值是什么? i
和n
最终值是什么,如果不是使用后缀增量运算符(i++
),您可以使用前缀版本(++i)
)吗?
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"
}
}
问题答案
- 问题:代码包含哪些运算符?
答:>
,+
- 问题:代码执行后
i
和n
之后的值是什么?
答案:i
是11,n
是0。 - 问:
i
和n
最终值是什么,如果不是使用后缀增量运算符(i++
),您可以使用前缀版本(++i)
)吗?
答案:i
是11,n
是1。
- 问题:代码执行后
- 问题:.要反转
boolean
值,您将使用哪个运算符?
答:逻辑补码运算符“!”。 - 问题:哪个运算符用于比较两个值,
=
或者==
?
答:==
被用于比较,=
用于赋值。 问题:解释以下代码示例:
result = someCondition ? value1 : value2;
答案:该代码应读为:“如果someCondition
是true
,则将value1
的值赋值给result
。否则,将value2
的值赋值给result
。”练习题答案
1.这是一种解决方案:
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.
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”。