另一个SCJP问题。我认为输出是K = 7,但本书的答案是“编译失败”。我只是没有看到代码有任何问题。此代码为什么编译失败?
1. class RevQOne{
2. public static void main(String [] args) {
3. boolean i = true;
4. boolean j = false;
5. short k = 10;
6. if((k == 10) && (j = true))k--;
7. if((i = false) || (k == 9))
8. k--;
9. k--;
10. System.out.println("k=" + k);
11. }
12. }
PS:第6行和第7行中的愚蠢=符号以及7中缺少大括号的if都是故意的。我想这个问题是为了测试我在误用这些事情时的行为方式。
您是否尝试自己编译它? (提示,看看你的布尔逻辑比较“j”和“true”) – 2010-09-02 00:03:36
Asker没有比较它们,j被分配给true,它返回true – MStodd 2010-09-02 00:16:30
所有这些数字在侧面('1.','2。 '等)将完全混淆编译器! :-) – Ken 2010-09-02 01:06:03