プロが教えるわが家の防犯対策術!

例:1
23
456
78910
・・・・・・のようにひょうじさせるプログラムを作成するのに、for文とIf文を使っての三角形を
  作成したいのですが、If文の条件式が分からないのとどうしたら、上記のようなプログラムが
  出来るのか教えてください。お願いします。

public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ

// 行に表示させる個数を表現するための変数がないため今回、新たに変数を用意する。
int a = 1;

//行の終わりを改行して1増やすための変数がないため今回、新たに変数を用意する。
int b = 1;

// 1~100までの数字を用意する。
for (int i = 1; i <= 100; i++) {

//変数iをSystem.out.printを使って変数iをコンソールの中に出力させる。
System.out.print(i);

//System.out.println("")を使って改行する。
System.out.println(" ");

//変数iに1増加して数字を順番にする。
i++;

if(a <= i){

System.out.print(a);

A 回答 (5件)

1


23
456

まではいいとして…

1
23
456
78910

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

この回答への補足

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

補足日時:2014/06/12 12:25
    • good
    • 0

こんなところですかね。



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の次の数字が改行にならないでひょうじさせるにはどうしたらいいですか?

補足日時:2014/06/12 13:45
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/06/12 13:17

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



ん?意味がわかりません。

この回答への補足

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

1
23
456
78910
93949596979899100101102103104105

補足日時:2014/06/12 14:54
    • good
    • 0

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);

}
    • good
    • 0

まず、元のプログラム(らしきもの)について。



> //変数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等のプログラミング言語に翻訳してコンピュータに教えるのです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!