2015-10-04 81 views
-2

所以我需要使用for循环显示三角形..出于某种原因代码正在编译,但是当我运行程序时什么也没有发生。循环是无用的,但我必须使用for循环来显示它作为我的练习的一部分。在for循环中使用方法

public class TrianglesUsingLoops { 
    public static void main(String[] args) {  
     for (int n = 0;n>=2;n++){ 
      upperTriangle(); 
      lowerTriangle(); 
     } 
    } 
    public static void upperTriangle(){ 
     System.out.println(" * "); 
     System.out.println(" *** "); 
     System.out.println("*****"); 
    } 
    public static void lowerTriangle(){ 
     System.out.println("*****"); 
     System.out.println(" *** "); 
     System.out.println(" * "); 
    } 
} 
+3

I thi你的意思是你的循环中'n <= 2'而不是'n> = 2'。 – Tunaki

+4

由于上述原因,您的循环会执行零次迭代,因为终止条件在开始时就已满足。 –

回答

1

它没有任何displaing的原因是因为显示的方法是你的循环内,并且在循环的statments永远不会被执行。

该行:for (int n = 0;n>=2;n++){表示n=0n>=2。这从来不会发生,因为n的初始值是0,n永远不会大于或等于2,因此方法调用绘制三角形从不执行。

如果你真的想使用的循环,你可以把它改成这样的:

for (int n = 0; n < 2; n++){ 
... 
... 
... 

这样的循环至少执行一次。

希望这会有所帮助。

0

让我们跟踪n: 初始化:n = 0; condition:0> = 2:no:break

0

在for循环中,只要条件为TRUE就会运行,它会在第一个FALSE处停止。

这不是一个条件,当它是真的时会停止循环。

这将运行5次:

for(int i = 0; i < 5; i++){ 
// code here 
} 

0 < 5 = true 
1 < 5 = true 
2 < 5 = true 
3 < 5 = true 
4 < 5 = true 
5 < 5 = false 

这将不会运行:

for(int i = 0; i > 5; i++) 

0 > 5 = false 

,这将创建一个死循环:

for(int i = 2; i > 1; i++) 

i总是会更大比1.

+1

最后一个例子也不会运行, – Andreas

+0

对不起,更正了它。 – x13

+0

当迭代达到MAX_VALUE时,'i'将小于1。 – Andreas