A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qishu 初级黑马   /  2014-7-31 11:57  /  722 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是纯白板...正在学习毕老师的课程  ,关于打印数组中各个元素 读这个代码有一点不太懂:
代码中else部分,说的是如果x对应的角标等于最高位角标的话,打印完该角标的元素就不加逗号,用中括结束了,问题是上一部用的print,这回用的println
打印结果不久换行了吗,但输出不是,求解!
public static void printarray(int[] arr)
        {
                System.out.print("[");
                for (int x=0 ;x<arr.length ;x++ )
                {
                        if (x!=arr.length-1)
                                System.out.print(arr[x]+", ");
                        else
                                System.out.println(arr[x]+"]");
                       
                }
        }

3 个回复

倒序浏览
      else执行完应该是换行了。它的执行内容为:当程序判断到x是最后一个元素的时候进入else语句执行,先输出最后一个元素,紧接着输出方括号"]",输出完上面的内容最后换行,程序结束。
      上一部分使用print确实是为了不让程序换行,使输出结果看上去就是一行的,这回使用println和使用print相比对单纯输出数组没有影响,只不过后面还有程序输出的话就不一样了,使用println会让后面的东西换行后输出,如果是print就接着在后面输出。
       我可能了解楼主的疑问,你可能会以为用println时,在输出最后一个数组元素后就换行了,所以方括号“]”应该在下一行,是这样吗?
       如果是这样就理解错了,println括号中的东西都输出完才换行呢,最后一个数组元素和方括号都在一个输出语句中,得一块输出完才换行。所以,你看到的应该是光标在下一行而不是“]”在下一行。如果是把
System.out.println(arr[x]+"]");一句拆成
System.out.print(arr[x]);
System.out.print("]");两句,效果一样,此时光标还在同一行。
回复 使用道具 举报
依然超级赛亚人 发表于 2014-7-31 18:39
else执行完应该是换行了。它的执行内容为:当程序判断到x是最后一个元素的时候进入else语句执行,先 ...

回答的这么仔细,实在感谢啊,我本理解的是应该在println后 输出的最后一个元素和括号都会在下一行,现在明白了。:handshake
回复 使用道具 举报
qishu 发表于 2014-7-31 19:00
回答的这么仔细,实在感谢啊,我本理解的是应该在println后 输出的最后一个元素和括号都会在下一行,现在 ...

噢,是这样啊,println语句还没执行呢,不会在另一行输出的,呵呵。它的意思是把它括号中东西先输出了再执行别的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马