在C中这样是可以的,在C中没有Boolean类型的数据,因此条件表达式的值是这样判断的:表达式的结果为0,就为假,否则为真。在一些脚本语言里这样也可以运行,但在Java中不行,并不是因为Java不好,而是因为Java语法规则更严谨。
之后,我还将i的类型改为byte、short、long、float、double甚至char进行测试,编译都无法通过
也就是说,在Java中byte、short、long、float、double这些基本类型数据无法直接转换为Boolean类型,用(Boolean)这样的强制转换也不行,如下: class ac { public static void main(String [] args) { int i,sum; i=10; sum=0;
while ((Boolean)i) { if((Boolean)(i%2))sum+=i; i--; } System.out.println(i+"\t以内的偶数的和为:\t"+sum);
} }
这样改了以后就可以了 class ac { public static void main(String [] args) { int i,sum; i=10; sum=0;
while (i!=0) { if(i%2==0)sum+=i; i--; } System.out.println(i+" 以内的偶数的和为:\t"+sum);
} }
编译运行皆正常:
F:\javaTest>javac test5.java
F:\javaTest>java ac
10 以内的偶数的和为: 30
F:\javaTest>
另外Boolean类型的数据无法像int、float等数据哪样参加加减乘除运算,如这样是不行的: Boolean b; int c; c=2*b+3; 新人新帖,请多指教、鼓励!谢谢!:)