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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余睿 中级黑马   /  2012-11-13 16:11  /  1708 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Array_2_Demo
  2. {
  3. public static void main(String[] args)
  4. {
  5. int[][] arr={{3,5,1,7},{2,3,5,8},{6,1,8,2}};
  6. System.out.print("[");

  7. for (int x=0;x<arr.length;x++)
  8. {
  9. for (int y=0;y<arr[x].length;y++)
  10. {
  11. if(y!=arr[arr.length-1].length-1)
  12. System.out.print(arr[x][y]+",");
  13. else
  14. System.out.print(arr[x][y]+"]");
  15. }
  16. }

  17. }
  18. }
复制代码
想了半天没想出来,大家帮忙看看

3333.jpg (4.76 KB, 下载次数: 36)

结果

结果

点评

12.if(y!=arr[arr.length-1].length-1)这的判断你好好看看,你是二维数组遍历快完了这个才会为false的,  发表于 2012-11-13 16:20
请问你想要的结果是什么的?  发表于 2012-11-13 16:18

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
想要实现的效果是 [3,5,1,7,2,3,5,8,6,1,8,2]

点评

试试这个吧 if(x!=arr.length && y!=arr.length)  发表于 2012-11-13 16:26
你的判断有问题的,因为12.if(y!=arr[arr.length-1].length-1)当y=3时都会加】的  发表于 2012-11-13 16:23
回复 使用道具 举报
余睿 发表于 2012-11-13 16:13
想要实现的效果是 [3,5,1,7,2,3,5,8,6,1,8,2]

哎呀  y的值是变化的哈 现在知道为什么出现这样的结果了
可是我还是没想出怎么实现 [3,5,1,7,2,3,5,8,6,1,8,2]
回复 使用道具 举报
余睿 发表于 2012-11-13 16:41
哎呀  y的值是变化的哈 现在知道为什么出现这样的结果了
可是我还是没想出怎么实现 [3,5,1,7,2,3,5,8,6, ...

神 我知道现在这个错哪了 但是怎么改呀  x!=arr.length && y!=arr.length 不对呀
回复 使用道具 举报
终于想出来了  应该是  if(x!=arr.length-1||y!=arr[arr.length-1].length-1)
回复 使用道具 举报
本帖最后由 陈龙 于 2012-11-13 17:45 编辑

试试这个吧
for(int i = 0;i < arr.length;i++)
{
      for(int j = 0;j<arr.length;j++ )
      {
            if((i != arr.length - 1) || (j != arr.length - 1))
            {
                   System.out.print(arr[j] + ",");
            }
            else
            {
                  System.out.print(arr[j] + "]");
            }
      }
}

这个题的关键是判断条件,只有在(i == arr.length - 1)&&(j == arr.length - 1)情况下,才需要打印(arr[j] + "]"),但是在编写程序时,不能用(i == arr.length - 1)&&(j == arr.length - 1)作为判断条件,因为在做循环判断时,如果用这个判断条件,只有一种情况是true。所以把这个判断条件取反,可以提高程序的效率

回复 使用道具 举报
余睿 中级黑马 2012-11-13 17:20:59
7#
问题已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马