- 締切済み
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>"); }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bvltiggeari
- ベストアンサー率76% (33/43)
まだ質問が受け付け中(&補足になっていた)なのでちょっとだけ… > 反転させる方法がわからなかったのですが 知りたいのはどれですか? 1.ひし形を作る方法 2.今のソースを反転させる方法 3.実はそれ以外 1であれば提示したソースでいいですよね? 2であれば極端な話、せっかくJSPですし<div align="right">を使えば同じコードでできますよ? 3であれば提示をお願いします。
- bvltiggeari
- ベストアンサー率76% (33/43)
間違えて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>"); } を反転させる方法がわからなかったのですが 使わせていただきます
- bvltiggeari
- ベストアンサー率76% (33/43)
こういう感じですか? (半角スペースが怪しいですか…) 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はドコで使うんでしょう??
補足
わざわざありがとうございます。 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つ多くなってしまいます。 これはループがおかしいのでしょうか?