2016-11-08 51 views
-3

我正在使用ASCII艺术制作钻石。是的,我知道代码不是马虎。无论如何,最后一部分没有在其他块的内部运行,导致钻石未完成。 全码: http://pastebin.com/14HnZADe为什么这个代码块不能运行?

电流输出:

http://pastebin.com/YTqKrRQe

for循环:

for(int i = 1; i<=size; i++) { 
    for(int j=1; j<=size; j++) { 
     if(j<i) { 
      System.out.print(" "); 
     } 
     else if(j==i || j>i) { 
      System.out.print("*"); 
     } else {//this block is not executing, and I do not know why. 
      for(int ki = 1; ki<=size; ki++) { // how do I fix it? 
       for(int n = size; n>=1; n--) { 
        if(j>=i) { 
         System.out.print("*"); 
        } else { 
         System.out.print(" "); 
        } 
       } 
      System.out.println(); 
      } 
     } 
    } 
    System.out.println(); 
} 
+1

这不是'免费调试我的代码'服务!有一个问题关闭类别专门针对您的问题类型指定,称为“为什么不能使用此代码?”。 –

+0

请在这里发布您的代码... – brso05

+0

@ brso05他不需要,因为它很快就会关闭。 –

回答

1

你的一个条件都有它到达else块之前必须满足:

if(j<i) { 
    System.out.print(" "); 
} 
else if(j==i || j>i) { 

j小于i或大于i或等于i。指定了所有可能的条件,因此else永远不会执行...

0

你有

if (j<i) { 
    //.. 
} else if (j==i || j>i) { 
    // .. 
} else { 
    // this will never happen 
} 

j==i || j>i相同j>=i。 else块永远不会执行,因为j总是小于i或大于或等于i。没有其他选择!

相关问题