• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java for文、if文を使っての三角形)

Java for文、if文を使っての三角形の作成方法

このQ&Aのポイント
  • Javaでfor文とif文を使って三角形を作成する方法を教えてください。
  • 要件としては、1行目には1つの数字、2行目には2つの数字、3行目には3つの数字、...というように増えていく三角形のプログラムを作成したいです。
  • 具体的な方法や条件式がわからないので教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.4

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)
回答No.5

まず、元のプログラム(らしきもの)について。 > //変数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)
回答No.3

>for文をもう一つ追加して、2の次の数字が改行にならないでひょうじさせるにはどうしたらいいですか? ん?意味がわかりません。

s_yonezawa
質問者

補足

for文(多重ループ)を使って出力結果を以下のように表示させるためにどうしたらいいのか。教えてください。 1 23 456 78910 93949596979899100101102103104105

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.2

こんなところですかね。 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つ多く表示する } } }

s_yonezawa
質問者

お礼

分かりました。有難うございます。

s_yonezawa
質問者

補足

for文をもう一つ追加して、2の次の数字が改行にならないでひょうじさせるにはどうしたらいいですか?

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

1 23 456 まではいいとして… 1 23 456 78910 と出力した時点で、いちばん下の行が1文字分だけ長くなっていて、 三角形になりません。それはいいんですか?

s_yonezawa
質問者

補足

1文字だけ長くなって三角形にならないのは問題ありません。階段状に表示させられれば問題ありません。

関連するQ&A