不定项选择题
给出下面的代码片断:
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)值。