アプリ版:「スタンプのみでお礼する」機能のリリースについて

JSPのwhile文でひし形を作りたいのですが
半分しかできません。数値が固定になってしまいます。
どうやったらひし形ができますか?教えてください。

// 上り
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
out.print("*");
}
out.print("<BR>");
}


// 下り
for (int i = 0; i < 5; i++) {
for (int j = 4; j >= i; j--) {
out.print("*");
}
out.print("<BR>");
}

A 回答 (3件)

まだ質問が受け付け中(&補足になっていた)なのでちょっとだけ…



> 反転させる方法がわからなかったのですが
知りたいのはどれですか?
1.ひし形を作る方法
2.今のソースを反転させる方法
3.実はそれ以外

1であれば提示したソースでいいですよね?
2であれば極端な話、せっかくJSPですし<div align="right">を使えば同じコードでできますよ?
3であれば提示をお願いします。

この回答への補足

わざわざありがとうございます。
int x;
x=Integer.parseInt(id1);



for (int i = 0; i < x; i++) {
for (int j = x--; j >= i; j--) {
out.print("★");
}
for (int j = 0; j <= i; j++) {
out.print("☆");
}
for (int j = 1; j <= i; j++) {
out.print("☆");
}
for (int j = x++; j >= i; j--) {
out.print("★");

まで修正したのですが一番左の数が1つ多くなってしまいます。
これはループがおかしいのでしょうか?

補足日時:2012/11/30 21:08
    • good
    • 0

間違えてSystem.out.printにしちゃいました(汗)


out.printに置き換えてください(T_T)

この回答への補足

ありがとうございました。
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
out.print("*");
}
out.print("<BR>");
}


// 下り
for (int i = 0; i < 5; i++) {
for (int j = 4; j >= i; j--) {
out.print("*");
}
out.print("<BR>");
}
を反転させる方法がわからなかったのですが
使わせていただきます

補足日時:2012/11/27 20:55
    • good
    • 0

こういう感じですか?


(半角スペースが怪しいですか…)

final int count = 5;
int asteriskCount = 1;
int spaceCount = 0;

for (int i = 1; i <= count; i++) {
spaceCount = count - i;
for(int j = 0; j < spaceCount; j++) {
System.out.print("");
}
for(int j = 0; j < asteriskCount; j++) {
System.out.print("*");
}
System.out.print("<BR>");
asteriskCount += 2;
}
asteriskCount -= 2;

// 下り
for (int i = count - 1; i >= 1; i--) {
asteriskCount -= 2;
spaceCount = count - i;
for(int j = 0; j < spaceCount; j++) {
System.out.print("");
}
for(int j = 0; j < asteriskCount; j++) {
System.out.print("*");
}
System.out.print("<BR>");
}

countの値を変えれば大きくも小さくもできます。
…多分(汗)
ところで、whileはドコで使うんでしょう??
    • good
    • 0

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