SCJP 1.6版考題 110

出自 陳富國維基館
於 2013年3月30日 (六) 04:26 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: Given: 11. public static void test(Sting str){ 12. int check = 4; 13. if(check = str.length()){ 14. System.out.print(str.charAt(check -= 1) + ", "); 15. }else{ 16. ...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋
Given:
11. public static void test(Sting str){
12.   int check = 4;
13.   if(check = str.length()){
14.     System.out.print(str.charAt(check -= 1) + ", ");
15.   }else{
16.     System.out.print(str.charAt(O) + ", ");
17.   }
18. }
and the invocation:
21. test("four");
22. test("tee");
23. test("to");


What is the result?
  A. r, t, t,
  B. r, e, o,
  C. Compilation fails.
  D. An exception is thrown at runtime.

解答


Ans: C

解說:

13. if (check = str.length())  --> if (check == str.length()) {
在Java裏,所有條件式皆需是boolean型態,不能像在C/C++時代,以非零是true的觀念來看!
上式是因為check是整數型態,而check == str… 最終是boolean型態