1. public class OperandOrder { 2.   public static void main(String args[]) { 3.     int i=0; 4.     int a[] = {3,6}; 5.     a[i] = i = 9; 6.     System.out.println(i + " " + a[0] + " " + a[1]); 7.   } 8. } Select one correct answer.A.  arrayindexoutofrange exeptionB.  print "9 9 6"C.  print "9 0 6"D.  print "9 3 6"

解决方案 »

  1.   

    考的是运算符优先级,[](取数组元素)优先级高于 =(赋值运算符),而 = 是右结合性的,即先要计算 a[i] 得到 a[0] 然后完成 i = 9,最后将表达式 i = 9 的值(就是赋值后 i 的值)赋给 a[0]。结果最后 i = 9,a[0] = 9,a[1] = 6。
      

  2.   

     
     呵呵 B 我是java初学者 大家一起加油
      

  3.   

    B 9 9 6
    先把0负值给 a[0] 然后把9负值给i
    不知对否?
      

  4.   

    i被a[i] = i = 9; 重新赋值了!右为先!赋值运算