null.length那个是运行时报错,代码本身合法的。问题在于&&的优先级,你没有括号,导致y = (x != null) && (... ?... : ...);这是不行的。B,这里==不能分开,也不知道是印刷错误还是怎么回事。
&& 前面条件满足才会走后面条件, x!=null 不满足,判断结束,结果为0