リファクタリング(読みやすくする修正)をしてみてはいかがでしょう?
まず、ネストしたif文は、処理を分かりにくくしますので、消してみましょう。
下の処理は、
以下のfor文の条件は、k < 5となっているのですが、
内容のif文は、k <= i となっていますね?
Java
1for (int k = 0; k < 5; k++) {
2 if (k <= i) {
3 System.out.print("$");
4 }
5}
なので、以下のように変更可能です。
Java
1for (int k = 0; k <= i; k++) {
2 System.out.print("$");
3}
次に、今修正したソースにコメントを入れてみます。
コメントは、何をしようとしているか「目的」が分かるように工夫します。
すなわち、ソースから目的を汲み取ってみてください。
Java
1// 1行分(長さi)の$を出力する。
2for (int k = 0; k <= i; k++) {
3 System.out.print("$");
4}
結果、以下のようになります。
Java
1public static void main(String[] args) {
2 for (int i = 0; i < 5; i++) {
3 // 1行分(長さi)の$を出力する。
4 for (int k = 0; k <= i; k++) {
5 System.out.print("$");
6 }
7 System.out.println();
8 }
9}
また、わからない部分はさらにコメントを入れます。
Java
1public static void main(String[] args) {
2 for (int i = 0; i < 5; i++) {
3 // 1行分(長さi)の$を出力する。
4 for (int k = 0; k <= i; k++) {
5 System.out.print("$");
6 }
7 // 次の出力位置に移動
8 System.out.println();
9 }
10}
他にも理解できない部分があれば、プログラムを組み替えてみたり、
コメント入れてみたりしてみてください。
こんな感じで、プログラムを組み替えたり、
コメントをいれたりする事で、理解に繋がっていくのでは?と期待しております。