-----------android培训、 java培训、期待与您交流! ----------
if else if else 与if if if连用的区别
前段时间写了一段代码,
此代码是获取一个二维数组,并分行打印数组
运行结果为:
如果把以上用于打印二维数组方法中的所用的else if改成if会是什么效果呢?代码如下:
运行结果为:
上面的运行结果明显是错误的,它多打印了二维数组中每个一维数组最后一个元素和一个逗号。
那这是为什么呢?经观察发现:System.out.print(arr[i][j]+",");会打印每个一维数组的最后一个元素,而本
来这个元素应该是由:
if(i!=arr.length-1 && j==arr[i].length-1)
System.out.println(arr[i][j]+"],");
来完成打印的。那在最后加上一句前加上关键字else会不会输出正确呢?代码如下:
输出结果如下:
发现此运行结果也是不正确的,但比之前的有所改善。只有最后一个一维数组的最后一个元素被重复打印了。
那这是为什么呢?经分析,else是最后一个if的else而与其他if没有任何关系,当i=4,j=5时,不满足前两个if条件,
因此不会打印,满足第三个if的条件会打印:“7,] }”;也不满足第4个if,因此也不会打印,但是正因为如此,
它对应的否则语句就会执行,所以最后打印了“7,”。因此是不正确的。而对于第二种,无论前面的if条件是
什么,最后的System.out.print(arr[i][j]+",");都会执行。因此会出现头尾的元素都会被打印两次。这不是我们所需
要的。也就是所if连用是会有交集的,而if elseif else是不会产生交集的。