黑马程序员 if elseif else 与if if if连用的区别

来源:互联网 发布:朱生豪情书集 淘宝 编辑:程序博客网 时间:2024/05/20 00:53


-----------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是不会产生交集的。


-----------android培训、 java培训、期待与您交流! ----------