运算符问题与练习
问题
观察以下代码片段.
1arrayOfInts[j] > arrayOfInts[j+1]包含了那些运算符?
观察以下代码片段.
12int i = 10;int n = i++%5;- 代码执行以后
i
和n
的值应该是什么? - 如果用前置自增操作符(
++i)
),取代后置自增操作符 (i++
),i
andn
的最终值应该是什么?
- 代码执行以后
为了反转一个
boolean
, 应该使用哪一个操作符?哪一个运算符是位了比较两个对象的值,
=
还是==
?解释后面的代码片段:
result = someCondition ? value1 : value2;
练习
将一下代码改变位符合运算符为变量赋值:
123456789101112131415161718192021class ArithmeticDemo {public static void main (String[] args){int result = 1 + 2; // result is now 3System.out.println(result);result = result - 1; // result is now 2System.out.println(result);result = result * 2; // result is now 4System.out.println(result);result = result / 2; // result is now 2System.out.println(result);result = result + 8; // result is now 10result = result % 7; // result is now 3System.out.println(result);}}以下代码中,解释 “6”为什么被打印了两次:
123456789101112class 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"}}
答案
问题答案
观察以下代码片段:
1arrayOfInts[j] > arrayOfInts[j+1]问题:代码中包含了那些运算符?
答案:
1>1+观察一下代码片段:
12int i = 10;int n = i++%5;Question: 代码执行以后
i
和n
的值应该是什么?Answer:
i
11,n
0.Question: 如果用前置自增操作符(
++i)
),取代后置自增操作符 (i++
),i
andn
的最终值应该是什么?
Answer:i
11,n
1.
Question:为了反转一个
boolean
, 应该使用哪一个操作符??
Answer: 逻辑否 “!”.Question: 哪一个运算符是位了比较两个对象的值,
=
还是==
?
Answer: The==
比较,=
赋值.Question: 解释以下代码:
result = someCondition ? value1 : value2;
Answer:代码可以读作: “如果someCondition
为true
, 将value1
复制给result
. 否则,将value2
赋值给result
.”
练习
练习答案
将一下代码改变位符合运算符为变量赋值:
12345678910111213141516171819202122class ArithmeticDemo {public static void main (String[] args){int result = 1 + 2; // result is now 3System.out.println(result);result = result - 1; // result is now 2System.out.println(result);result = result * 2; // result is now 4System.out.println(result);result = result / 2; // result is now 2System.out.println(result);result = result + 8; // result is now 10result = result % 7; // result is now 3System.out.println(result);}}一种解法:
123456789101112131415161718192021class ArithmeticDemo {public static void main (String[] args){int result = 3;System.out.println(result);result -= 1; // result is now 2System.out.println(result);result *= 2; // result is now 4System.out.println(result);result /= 2; // result is now 2System.out.println(result);result += 8; // result is now 10result %= 7; // result is now 3System.out.println(result);}}以下代码中,解释 “6”为什么被打印了两次:
123456789101112class 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"}}代码
|
|
计算结果 6, 因为前缀版的
|
|
本行计算出已经增加的结果,下一行,
|
|
本行计算出当前的结果, 然后再增加1.因此7在下一行才会打印.