2013-03-14 68 views
0

编写一个程序,打印在屏幕下面:嵌套环 - 第三个?

1 2 3 4 5 6 7 8 9 10 

2 3 4 5 6 7 8 9 10 

3 4 5 6 7 8 9 10 

4 5 6 7 8 9 10 

5 6 7 8 9 10 

6 7 8 9 10 

7 8 9 10 

8 9 10 

我有一个小麻烦纠正嵌套循环 - 我把它像她那样,数字将不会在10停止虽然。该代码打印此:

1 2 3 4 5 6 7 8 9 10 

2 3 4 5 6 7 8 9 10 11 

3 4 5 6 7 8 9 10 11 12 

4 5 6 7 8 9 10 11 12 13 

5 6 7 8 9 10 11 12 13 14 

6 7 8 9 10 11 12 13 14 15 

7 8 9 10 11 12 13 14 15 16 

8 9 10 11 12 13 14 15 16 17 

我是一个初学编程的,需要这方面的帮助 - 你需要嵌套循环已经内第三循环?任何帮助表示赞赏!这是我到目前为止的代码:

import java.util.Scanner; 

public class LoopProgram 
{ 
    public static void main(String args []) 
    { 
     for (int e=0; e<8; e++) 
     { 
      for (int f=1; f<=10; f++) 
      { 
       System.out.print(f + e + " "); 
      } 
      System.out.println(); 
     } 
    } 
} 
+3

为什么你会需要第三个循环?你会得到什么?另外,你为什么在循环中加入'f'和'e'?这是没有意义的。 – Makoto 2013-03-14 00:38:27

+0

因为你正在打印'f + e',这将会上升到'17',因为'e'循环中的最大数字是'7','f'是'10' ... – beny23 2013-03-14 00:40:36

+0

你只需要在你的内循环中生成'f = e'并只打印'f'。那么你很好去。 – Smit 2013-03-14 00:42:07

回答

4

两个循环就足够了。

外循环运行八次,你已经得到了工作。

然而,你的内循环总是运行十次,这不是你想要的。你想内环先运行10次,则只有9倍,则只有8倍等。这里关键是要改变内部循环的开始或结束值,就像这样:

for (int e=0;e<8;e++) { 
    for (int f=e+1; f<=10; f++) { 
     ... 
    } 
} 
+0

哦,我明白了!谢谢! – user2163372 2013-03-14 00:49:11

1

试试这个第二循环:

for(int f=e;f<=10;f++) 

和输出

System.out.print(f+" "); 
1

我想这是你正在寻找的。

for(int e=1;e<9;e++) { 
    for(int f=e;f<=10;f++) { 
     System.out.print(f+" "); 
    } 
    System.out.println(); 
} 

这完全符合你的要求。

0

三个循环是严重的矫枉过正。这可以通过一个循环和两个计数器完成。

public class LoopProgram { 
    static final int LIMIT_1 = 8; 
    static final int LIMIT_2 = 10; 

    public static void main(String[] args) { 
    int a = 1, b = 2; 
    while(b <= (LIMIT_1 + 1)) { 
     System.out.print(a); 
     if(a < LIMIT_2) { 
     System.out.print(" "); 
     a++; 
     } else { 
     System.out.println(); 
     a = b; 
     b++; 
     } 
    } 
    } 
} 
0

你只需要两个循环: 外一个会跑八次和内部人会在外部计数器的值开始(那是什么使每一行数多达十个,但总是在第一次启动最后一行+ 1的值),并运行,而它的计数小于10

类似的东西:

for (int i = 0; i < 8; i++) { 
    for (int e = i; e < 10; e++) { 
     //print e + 1 
    } 
} 

你要打印E + 1让你的行不为0开始,但在一个,去10。

0

这更多的是解释如何为自己工作这种事情。在for循环最常见的情况下,您应该问自己三个有关索引变量的问题:

  1. 我希望它具有的第一个值是什么?
  2. 在什么情况下我想再做一次迭代?
  3. 它应该如何从迭代变为迭代?

对于你的内环,答案是:

  1. Ë
  2. ˚F< = 10
  3. ˚F++

从这一点,很容易构建循环,并且您已经为您编写了几个示例。

1

这是我会怎么做

for (int i = 1; i <= 8; i++) { 
     for (int j = i; j <= 10; j++) 
      System.out.print(j + " "); 
     System.out.println(); 
}