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

//putChars()メソッドを呼ばず(使わず)
for文のネストで、できますか
import java.util.Scanner;

class IsoscelesTriangleRB {

//--- 文字cをn個連続表示 ---//
static void putChars(char c, int n) {
while (n-- > 0)
System.out.print(c);
}

public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);

System.out.println("右下直角の三角形を表示します。");
System.out.print("段数は:");
int n = stdIn.nextInt();

for (int i = 1; i <= n; i++) {
putChars(' ', n - i);// ' 'をn - i個表示
putChars('+', i);// '+'を i 個表示
System.out.println();
}
}
}

A 回答 (2件)

>//putChars()メソッドを呼ばず(使わず)


>for文のネストで、できますか

単に「 putChars(' ', n - i); // ' 'をn - i個表示」等と書いてる所に
putChars() の中身を展開すればいいけど、意味はないよね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2008/04/04 02:34

単に短く書くなら、新たにJavaでも使えるようになった、printfを使ってみましょう。


例えば、
System.out.printf("%5s\n","+++++");
の様に記述しますが、数字5の部分を変化させる必要があります。変数にすれば良いですね。

以下のコードを参考にしてみてください。
------------------------------------------------------------

import java.util.Scanner;

class IsoscelesTriangleRB2 {

public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);

System.out.println("右下直角の三角形を表示します。");
System.out.print("段数は:");
int n = stdIn.nextInt();

String ss="+";
for (int i = 1; i <= n; i++) {
System.out.printf("%"+n+"s\n",ss);
ss += "+";
}
}
}
    • good
    • 0
この回答へのお礼

参考になりました
ありがとうございました。

お礼日時:2008/04/04 02:34

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