前提・実現したいこと
int型配列aの要素の値をアスタリスクを使って表し、
縦に並べた下向きグラフで表示するプログラムを書いています。
最初の行は配列のインデックスrの最下位桁です。
0123456789012 ********* *** ****** * *** ** *** * *** * *** * ** * ** * * ** * ** * * *
発生している問題・エラーメッセージ
ソースコードの繰り返し部分が何をやっているのか理解できません。
System.out.println("a[j]: " + a[j])
でa[j]の値を表示して見ましたが、どのような繰り返しをしていて
どのような場合にアスタリスクが表示されるのかわからず、困っています。
ご説明いただけますと幸いです。
for (int i = 1; i < max; i++) { for (int j = 0; j < a.length; j++) { //System.out.println("a[j]: " + a[j]); if (a[j] >= i) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(); } }
該当のソースコード
Java
1public class ShowAstarisk { 2 3 public static void main(String[] args) { 4 int[] a = { 3, 5, 2, 7, 8, 4, 1, 9, 1, 0, 3, 4, 5 }; 5 int max = 0; 6 for (int i = 0; i < a.length; i++) { 7 if (a[i] > max) { 8 max = a[i]; 9 } 10 } 11 System.out.println("max: " + max); 12 for (int i = 0; i < a.length; i++) { 13 System.out.print(i % 10); 14 } 15 System.out.println(); 16 17 for (int i = 1; i < max; i++) { 18 for (int j = 0; j < a.length; j++) { 19 //System.out.println("a[j]: " + a[j]); 20 if (a[j] >= i) { 21 System.out.print("*"); 22 } else { 23 System.out.print(" "); 24 } 25 } 26 System.out.println(); 27 } 28 29 } 30 31} 32
補足情報(FW/ツールのバージョンなど)
lipse Version: Oxygen.3a Release (4.7.3a)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。