不定项选择题 给出下面的代码片断:
   1)String str=null;
   2)if  ((str  !=null)  &&  (str.length()  >10))  {
   3)System.out.println("more than  10");
   4)}
   5)else if  ((str  !=null)  &  (str.length()  <5))  {
   6)system.out.println("less than 5");
   7)}
   8)else  (  system.out.println("end");  }
   第______行将导致错误.
   A.1    B.2
   C.5    D.8
【正确答案】 C
【答案解析】此题需要将代码仔细看清楚,查询没有逻辑错误。If…else的使用没有问题,也没有拼写错误,错误在于第5行的“与”操作符的使用。逻辑操作符(logical operator)的“与”应该是&&,而&是位逻辑操作符(bitwise logical operator)的“与”,两者使用的对象不一样。逻辑操作符的“与”的左右操作数都应该是布尔型(logical boolean)值,而位逻辑操作符的左右操作数都是整型(integral)值。