日期:2014-05-20  浏览次数:20738 次

简单问题,选D还是E呢
public   static   void   main(string   args[])   {
            int   t=0;
            while(1)   {
                if(t++ <10)
                break;
            }
}
What   will   be   the   value   of   ‘t’   after   the   while   loop?     D
A.   11
B.   9
C.   10
D.   Compilation   error
E.   An   Exception   will   occur.

请问答案是D还是E,这两者的区别是?

------解决方案--------------------
当然是编译错误.都不能运行,怎么能抛出异常.
------解决方案--------------------
D
while() 需要的参数是boolean型的,而此处给的是int

------解决方案--------------------
一个是因为违反语法规则而无法完成编译,一个是运行期间出现异常行为。
比如你定义数组int[] a;没有初始化就在下面的程序带噢用a[0],那么就无法编译。如果你初始化了a[] ,但是你在调用的时候使用a[i]读取数组,可是i的值为负值,就会出现Exception 。