• 締切済み

JSPのwhile文で1~5の☆でひし形を作りたい

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

みんなの回答

回答No.3

まだ質問が受け付け中(&補足になっていた)なのでちょっとだけ… > 反転させる方法がわからなかったのですが 知りたいのはどれですか? 1.ひし形を作る方法 2.今のソースを反転させる方法 3.実はそれ以外 1であれば提示したソースでいいですよね? 2であれば極端な話、せっかくJSPですし<div align="right">を使えば同じコードでできますよ? 3であれば提示をお願いします。

mamyuru
質問者

補足

わざわざありがとうございます。 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つ多くなってしまいます。 これはループがおかしいのでしょうか?

回答No.2

間違えてSystem.out.printにしちゃいました(汗) out.printに置き換えてください(T_T)

mamyuru
質問者

補足

ありがとうございました。 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>"); } を反転させる方法がわからなかったのですが 使わせていただきます

回答No.1

こういう感じですか? (半角スペースが怪しいですか…) 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("&nbsp;"); } 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("&nbsp;"); } for(int j = 0; j < asteriskCount; j++) { System.out.print("*"); } System.out.print("<BR>"); } countの値を変えれば大きくも小さくもできます。 …多分(汗) ところで、whileはドコで使うんでしょう??

関連するQ&A