2016-04-23 36 views
0

我想顯示一個16行和一列左側32列開始,結束於240.顯示一個ascii表。問題是我不能讓表超出了第一個16個字符它只是不斷重複同一行。這是代碼。 public static void main(String [] args)int counter = 0;顯示一個ascii表

for (int i = 32; i <= 255; i = i + 16) { 

     if(i < 112) 
      System.out.print(" "); 
     System.out.print(i + " "); 


     for (int j = 32; j <= 47; j++) { 
      counter++; 
      System.out.print((char)j); 
      if(counter % 16 == 0) 
      System.out.print((char)j); 

      else 
       System.out.print((char)j + " "); 


     } 
     System.out.println(); 

並且這是輸出。

32 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
48 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
64 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
80 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
96 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
112 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
128 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
144 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
160 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
176 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
192 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
208 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
224 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
240 !! "" ## $$ %% && '' (()) ** ++ ,, -- .. // 
enter code here 
+0

不應** **隨着** i **的值而改變?類似於'for(int j = i; j <= i + 15; j ++)' – 0p3n5ourcE

+0

您的代碼更改有效,但會使每個字符加倍。 – Stanmoonie

+0

註釋行'System.out.print((char)j);''在'counter ++;'之後可能會有所幫助,因爲它總是會打印。 – 0p3n5ourcE

回答

0

內循環錯誤。我總是從j=32開始,但你應該從j=i開始,我相信。

並且也停止在j <= i+15