2013-11-03 67 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(); 
     } 
    } 
}