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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张金 中级黑马   /  2012-11-9 12:46  /  1960 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张金 于 2012-11-9 13:50 编辑

public class Test22 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                for (int x = 0; x < 5; x++) {
                        for (int y = x + 1; y < 5; y++) {
                                System.out.print("-");
                        }
                        for (int z = 0; z <= x; z++) {
                                System.out.print("* ");
                        }
                        System.out.println();
                }
               
System.out.println("------------------------");
        for (int a = 0; a < 5; a++) {
                        for (int b = 1; b <= a; b++) {
                                System.out.print("-");
                        }
                        for (int c = a; a < 5; c++) {
                                System.out.print("*");
                        }
                        System.out.println();
                }
System.out.println("----------------------------");
        }
}
在这个程序里,怎么就是运行完后,停不下来,把一个双层for循环注释掉,就可以停下来了,不知道是编译器的问题,还是程序那里没看明白。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
本帖最后由 宫明星 于 2012-11-9 13:07 编辑
  1. class ForForTest
  2. {
  3.         public static void main(String[] args) {
  4.                 for (int x = 0; x < 5; x++) {
  5.                          for (int y = x + 1; y < 5; y++) {
  6.                                  System.out.print("-");
  7.                          }
  8.                          for (int z = 0; z <= x; z++) {
  9.                                  System.out.print("* ");
  10.                          }
  11.                          System.out.println();
  12.                  }
  13.                  
  14. System.out.println("------------------------");
  15.          for (int a = 0; a < 5; a++) {
  16.                          for (int b = 1; b <= a; b++) {
  17.                                  System.out.print("-");
  18.                          }
  19.                          for (int c = a; c < 5; c++) {
  20.                                  System.out.print("*");
  21.                          }
  22.                          System.out.println();
  23.                  }
  24. System.out.println("----------------------------");
  25.          }
  26. }
复制代码
改了一下给你,没问题了。
先运行了你的代码,发现第一个for循环打印了,那显然是第二个for循环出问题了,注释掉第二个,果然程序正常。
检查过程中调试了几下,整体逻辑没问题,不过一个地方写错了。
第二个for循环中,应该是int c = a; c < 5; c++。你写成了a<5,自然就死循环无限打印了

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. for (int c = a; a < 5; c++) {
  2.                                 System.out.print("*");
  3.                         }
复制代码
首先要说是,你这个程序没有运行完整,只运行了上面那部分,然后到我贴的这块的时候就成了死循环 自己看看是不是

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
学习了……再次证明了细节的重要性,做程序马虎不得啊……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马