最近,我看到网络上有一道题是《Java2新观念读本》里的一道题。题目如下:
编译并执行下列的代码,会出现什么结果:
class Test{
public static void main(String [] args){
int i=6;
float f=6.0000000000009F;
double d=6.0000000000009;
if(f==i)
if(f==d)
System.out.println("a");
else
System.out.println("b");
else
System.out.println("c");
}
}
A. 程式編譯時發生錯誤
B. 輸出 a
C. 輸出 b
D. 輸出 c
答案是C
首先,我想请教大神:6.0和float f以及double d到底是不是相等的?如果是,为何会执行第二个else的输出结果?
2个括号的条件,是必须同时符合2个条件才执行下面的语句吗?能把这个if...else的条件从句用流程图表示清楚吗?谢谢