public static void certkiller(String str) {
int check = 4;
if(check = str.length()) {
System.out.print(str.charAt(check -=1) + " ");
} else {
System.out.print(str.charAt(0) + " ");
}
}
and the invocation:
certkiller("four");
certkiller("tee");
certkiller("to");
What is the result?
A. r, t, t
B. r, e, o
C. Compliation fails
D. An exception is thrown at runtime
Answer: C
我在这里出这个题不是说大家都做不来,而是想说考试的时候一定要注意审题,相信大家这个时候都知道是哪里错了。SCJP在考试中喜欢的就是考验大家是否仔细,稍稍留点儿意,就可以发现在if条件判断中使用了“=”号,而且这里的“=”号目的就是将右边的数赋值给左边的check,当然不行,条件判断的值只能是boolean型的或者Boolean封装类型。当然,如果check的定义是“boolean check” 或者“Boolean check”, 而且if条件判断式“check = true|false”,这样是可以的。还是要注意点就是如果是“check = false”, 将执行的是else中的语句。