質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1624閲覧

【java,jsp】for文で作った図形を横並びにしたい

imuya-1018

総合スコア12

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2024/01/04 12:25

編集2024/01/04 13:38

実現したいこと

for文で作った図形を横並びにしたい
イメージ説明

前提

java

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>Insert title here</title> 8<style > 9div{ 10float:left; 11} 12</style> 13</head> 14<body> 15<% 16 17int n = 5; 18for(int a=1; a<=5; a++){ 19 out.println("<div>"); 20for (int i = 1; i <= 2 * n - 1; i++) { 21 int stars; 22 int spaces; 23 24 if (i <= n) { 25 stars = i; 26 spaces = (n - i) * 2; 27 } else { 28 stars = 2 * n - i; 29 spaces = (i - n) * 2; 30 } 31 32 33 for (int j = 1; j <= stars; j++) { 34 out.print("*"); 35 } 36 37 38 for (int k = 1; k <= spaces; k++) { 39 out.print("&nbsp;&nbsp;"); 40 } 41 for (int l = 1; l <= stars; l++) { 42 out.print("*"); 43 } 44 45 out.print("<br>"); 46} 47out.println("</div>"); 48} 49 50%> 51</body> 52</html>

発生している問題・エラーメッセージ

自分では上記のコードを書きました。
現在はCSSを使って横並びにしているのですが、他にできる方法があるか教えていただきたいです。

試したこと

<br>で改行してしまっているので、out.print("\n"); を入れてみたり、入れる場所を変えてみたりするのですが、図形が崩れてしまいます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2024/01/04 12:52

どのような表示にしたいのにどのような表示になってしまうのでしょうか。
imuya-1018

2024/01/04 13:41

画像を追加しました 左にある三角形を2つ並べた図形を5回繰り返しタイのですが、コードに<br>を入れている関係でccsを入れないと縦に表示されてしまいます。 先生の評価待ちの状態なのですが、今のコード以外でもできることがあるのか教えて頂きたいです
jimbe

2024/01/04 17:50 編集

画像ありがとうございます。 現状は蝶ネクタイの形を横に5つ並べているプログラムですかね。 画像をよく見れば、ネクタイは9行で構成されています。なら、"ネクタイの行毎に5回繰り返して改行"を9回やれば、同じ形になるのではないでしょうか。 なお、 >試したこと >out.print("\n"); は、 html では *改行コードはスペースと同じ扱い* ですので意味ありません。
guest

回答1

0

ベストアンサー

"図形の行毎に横に並べて改行"するコンソールjavaプログラムです。

java

1import java.util.*; 2import java.io.*; 3 4public class Main { 5 public static void main(String[] args) { 6 PrintStream out = System.out; 7 8 int m = 5; //並べる数 9 int n = 5; //図形のパラメータ 10 for(int i=1; i<n*2; i++) { //1..9 11 int j = i; //1..9 12 if(j > n) j = n*2 - j; //6..9 -> 4..1 13 //図形のi行目をm個横に並べる 14 for(int a=0; a<m; a++) { 15 for(int k=0; k<j; k++) out.print("*"); //1..5..1 16 for(int k=0; k<n-j; k++) out.print(" "); //4..0..4 17 for(int k=0; k<j; k++) out.print("*"); 18 } 19 out.println(); //改行 20 } 21 } 22}
* ** ** ** ** * ** **** **** **** **** ** *** ****** ****** ****** ****** *** **** ******** ******** ******** ******** **** ************************************************** **** ******** ******** ******** ******** **** *** ****** ****** ****** ****** *** ** **** **** **** **** ** * ** ** ** ** *

投稿2024/01/04 17:36

編集2024/01/04 17:51
jimbe

総合スコア13318

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imuya-1018

2024/01/05 04:03

そちらで解決しました!! ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問