2013-11-03 62 views
-5

我想打印一个星号时i + j等于一个指定的号码,但我的代码永远不会打印一个:检查嵌套循环变量总结到一定数量

public class A{ 
    public static void main(String[]args){ 
     for (int i = 5; i < 10; i++) { 
      for (int j = 5; j < 10; j++) { 
       if (i == j || (i+j == 7)) { 
        System.out.printf("*"); 
       } else { 
        System.out.printf(""); 
       } 
      } 
      System.out.println(); 
     } 
    } 
}   
+0

“结果不是X”?那是什么意思?什么是X?为什么使用'printf'而不是'print'? – kviiri

+0

那你发现当你调试的程序? (提示:观看光标位置) –

+0

@RaymondChen不打印,直到换行写的,所以光标现在的位置是没有帮助的。 –

回答

0

那么,当你在做的空白,它应该是“”,而不是“”,否则不会有空格。它应该是,如果I + J = 14,而不是7,因为它永远不会等于7

+0

谢谢。我懂了。 :) – Questioner

0

一个好的方法来绘制这样的模式是,将它们变为区域/地区,然后使用各种循环和条件语句构建那些地区。

E.g.绘制X图案的一种方法是从半垂直划分X图案分成两个部分。现在,您可以轻松地考虑将其绘制为零件。

你可以帮助来源于此。

public class xpattern { 
    public static void main(String[] args) { 
     int totalLines = 11; 
     for (int i = 0; i < totalLines; i++) { 
      for(int j = 0; j < totalLines; j++) { 
       if(i == j || j == (totalLines - (i + 1))) { 
        System.out.print("*"); 
       } else { 
        System.out.print(" "); 
       }    
      }      
      System.out.println(); 
     } 
    } 
}