- ベストアンサー
Java for文、if文を使っての三角形の作成方法
- Javaでfor文とif文を使って三角形を作成する方法を教えてください。
- 要件としては、1行目には1つの数字、2行目には2つの数字、3行目には3つの数字、...というように増えていく三角形のプログラムを作成したいです。
- 具体的な方法や条件式がわからないので教えていただけると助かります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ // 行に表示させる個数を表現するための変数がないため今回、新たに変数を用意する。 int a = 1; //行の終わりを改行して1増やすための変数がないため今回、新たに変数を用意する。 int b = 0; // 1~10までの数字を用意する。 for (int i = 1; i <= 10; i++) { //変数iをSystem.out.printを使って変数iをコンソールの中に出力させる。 System.out.print(i); b++; if(b>=a){ //System.out.println("")を使って改行する。 System.out.println(" "); b=0; a++; } } // 93~105までの数字を用意する。 for (int i = 93; i <= 105; i++) { //変数iをSystem.out.printを使って変数iをコンソールの中に出力させる。 System.out.print(i); }
その他の回答 (4)
- kmee
- ベストアンサー率55% (1857/3366)
まず、元のプログラム(らしきもの)について。 > //変数iに1増加して数字を順番にする。 > i++; とありますが、for (i=~ の中で i を変化させると、ループ回数が変化します。 この場合は i=1で開始 ↓ System.out.print(i); で 1を出力 ↓ 上記のi ++ で i==2に ↓ forループの終りで、 for (int i = 1; i <= 100; i++) の3つ目の式 i ++ により、 i==3 に。 for (int i = 1; i <= 100; i++) の2つ目の式で、 3 < 100 となり、forへ戻ってループ続行 ↓ System.out.print(i); で 3を出力 ... となります。 意図的にループ制御用変数を変化させる高等テクニックもありますが、通常は、ループ制御変数は参照するに留めておきます。 > If文の条件式が分からない これを、あなた自身が紙に鉛筆で書くならば、どこで改行しますか? その説明を日本語で(英語のネイティブスピーカーなら英語で、その他、あなたが普段普通に使っている言語で)説明してください。 それが、 if に書く条件です。 ただ、 コンピュータは日本語(英語などなど)を理解してくれません。 そこで、Java等のプログラミング言語に翻訳してコンピュータに教えるのです。
- maiko0318
- ベストアンサー率21% (1483/6969)
>for文をもう一つ追加して、2の次の数字が改行にならないでひょうじさせるにはどうしたらいいですか? ん?意味がわかりません。
- maiko0318
- ベストアンサー率21% (1483/6969)
こんなところですかね。 public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ // 行に表示させる個数を表現するための変数がないため今回、新たに変数を用意する。 int a = 1; //行の終わりを改行して1増やすための変数がないため今回、新たに変数を用意する。 int b = 0;//行にすでに表示した個数を数えるための変数とする。 // 1~100までの数字を用意する。 for (int i = 1; i <= 100; i++) { //変数iをSystem.out.printを使って変数iをコンソールの中に出力させる。 System.out.print(i); b++;//表示した数を数える //行に表示した数=行に表示する数になったら if(b>=a){ //System.out.println("")を使って改行する。 System.out.println(" "); b=0;//行に表示した数をリセット a++;//次の行は1つ多く表示する } } }
お礼
分かりました。有難うございます。
補足
for文をもう一つ追加して、2の次の数字が改行にならないでひょうじさせるにはどうしたらいいですか?
- asuncion
- ベストアンサー率33% (2127/6289)
1 23 456 まではいいとして… 1 23 456 78910 と出力した時点で、いちばん下の行が1文字分だけ長くなっていて、 三角形になりません。それはいいんですか?
補足
1文字だけ長くなって三角形にならないのは問題ありません。階段状に表示させられれば問題ありません。
補足
for文(多重ループ)を使って出力結果を以下のように表示させるためにどうしたらいいのか。教えてください。 1 23 456 78910 93949596979899100101102103104105