新人の時に作ったプログラムを、2年目になった今作ってみました。
再びfor文。前回の記事のつづきです。
結論:
理系同期に手伝ってもらいながら、何とか完成
問題
- ソースファイル名「Check32.java」
- 頂点の高さを整数で入力します
- 以下の実行結果のように、「*」を使って入力した高さの三角形を表示します
三角形の高さを入力してください
5
*
**
***
****
*****
****
***
**
*
実装
以下のように作りました。
Check32.java
package practice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Check32 {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("三角形の高さを入力してください");
String line;
try {
line = reader.readLine();
int hight = Integer.parseInt(line);
for( int i = 0; i < hight; i++) {
for (int j = 0; j < i ;j++) {
System.out.print("*");
}
System.out.println();
}
for( int i = hight; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
} catch (NumberFormatException e) {
System.out.println("整数を入力してください");
} catch (IOException e) {
e.printStackTrace();
}
}
}
感想
「j < i」にすることを、思いつきませんでした。
あとはfor文を書くときに、ついつい、
for( 初期設定 ; 終了条件 ; 継続処理 ){ }
と書いてしまい、思った通りに動作しないということがありました。