2013-05-10 176 views
-2

我对我正在做的家庭作业有点困惑。我试着写出7套123.除了套数是偶数之外,我不想写123但只是单词甚至没有数字,然后继续下一组。
我正在使用while循环来跟踪计数集和for循环来进行计数123.但问题是,随着程序的编写,它甚至会连续打印。
我试着把if条件放在for循环中,但是只能连续打印(123甚至)永远。
我错误地应用了if条件吗?我错误地申请条件?for循环里面while循环使用条件如果条件

import acm.program.*; 
public class TestProgram extends ConsoleProgram 
{ 

    public void run() 
    { 
     int i = 1; 
     while (i <= 7) 
     { 
      if (i % 2 == 0) 
      { 
       println("even"); 
      } 
      else 
      { 
       for (int j = 1; j <= 3; j++) 
       { 
        println(j); 
       } 
      } 
     } 
    } 

} 
+2

您需要修复缩进。这应该让事情更清楚。 – Thilo 2013-05-10 00:25:56

+0

在这里发布代码以确保格式良好时总是一个好主意。你的目标是让某人阅读并理解你的代码,然后帮助你。如果格式与您的格式不符,您可能会遇到前两点的问题,这可能会妨碍您获得第三点,即您所需要的帮助。我们非常赞赏你在这方面的努力。 – 2013-05-10 00:26:53

+0

你需要在那里有一个'i ++'。我建议为'i'使用for循环,而不是while。 – Thilo 2013-05-10 00:27:10

回答

3

你根本没有递增我,所以它永远不会终止。您的发言后,添加类似

i++; 
+0

+1。我建议为我也使用for循环,而不是while。 – Thilo 2013-05-10 00:27:33

+0

@jongusmoe我试图在while循环级别添加i ++,但没有修复它。该程序甚至可以打印1甚至2甚至3甚至1甚至2甚至3。 – 2013-05-10 00:35:18

1

什么你写是一个无限循环,因为i将始终小于或等于7,它初始化为1不管你做什么去改变它。

+0

如果我的程序根本不对我想要做的错误?我试着把i ++放在while循环的层次上,但是这个程序仍然没有打印出我想要打印的东西。 – 2013-05-10 00:41:12

+1

你可以在while循环块的末尾放置'i ++',这样'i'在整个第一次迭代中就是'1',在整个第二次迭代中''是'2'等等。 – rgettman 2013-05-10 00:45:13