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

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

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

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

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

Q&A

4回答

858閲覧

Java 繰り返し処理のネスト文

pipiyoyo

総合スコア2

Java

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

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

0グッド

0クリップ

投稿2021/04/17 04:29

編集2021/04/17 04:32

Javaで競技プログラミングの勉強をしております。
今回、iの数の分だけ文字を表示させるというプログラムを作っている際に詰まってしまいました。

for文を使って、"*"の文字をi <= 10になるまで下記のように表示させてあげたいのですが、なかなかうまくいきません。

* ** *** **** ***** ****** ******* ******** ********* **********

ちなみにfor文は

Java

1String symbol = "*"; 2 3for ( int i = 1; i <= 10; i++ ){ 4 System.out.print( symbol ); 5}

というところまで書きましたが、この先がかけません。

symbol * iみたいな感じで表示させてあげようとも思ったのですが、データ型が違うためエラーとなってしまいました。

始めたばかりの素人質問で申し訳ございませんが、宜しくお願いいたします。

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

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

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

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

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

y_waiwai

2021/04/17 04:34

どういうふうにうまくいかないんでしょうか。 エラーが出るなら、エラーメッセージをコピペでそのまま提示してください
dodox86

2021/04/17 04:59

1つ目は 1つ分の'*'を出力して改行 2つ目は 2つ分の'*'を出力して改行 3つ目は 3つ分の'*'を出力して改行 ... のように考えてみて、forループを組んでみてください。JavaとかC言語とかプログラミング言語を置いておいて、まず頭の中で処理の流れができていなければコードは書けません。
guest

回答4

0

repeatを使用可能なのはJava 11からですね、もしそちらに該当するのであれば、
それが一番簡略的なコーディングが可能かと思います。
上記バージョン以前の場合はStringBuilderクラスで文字列を結合して表現可能かと思われます。
String Builderは他にも使用用途は多々あるので覚えておいて損はないです。

https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/lang/StringBuilder.html

投稿2021/04/29 12:35

bigtree1027

総合スコア5

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

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

0

次の中から理解できるものを選んで、2~8 を i にすればよいでしょう。
どれがお望みですか?

Java

1class Main { 2 public static void main(String[] args) { 3 System.out.println("*"); 4 5 System.out.println("*".repeat(2)); 6 7 System.out.println( 8 new String(new char[3]).replace("\0", "*")); 9 10 System.out.println( 11 String.valueOf(new char[4]).replace("\0", "*")); 12 13 System.out.println( 14 String.format("%"+5+"s", "").replace(" ", "*")); 15 16 System.out.println( 17 String.join("", java.util.Collections.nCopies(6, "*"))); 18 19 char[] a = new char[7]; 20 java.util.Arrays.fill(a, '*'); 21 System.out.println(a); 22 23 String s = ""; 24 for (int j = 0; j < 8; j++) s += "*"; 25 System.out.println(s); 26 } 27}

for のネストなら、最後のものになりますね。

投稿2021/04/18 09:54

kazuma-s

総合スコア8224

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

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

0

symbol * i

のような書き方はできないので、

自前でメソッドを作成するか、
forをつかった2重ループにするか
javaのバージョン次第ですが、String#repeatを使うかですね。

投稿2021/04/18 02:08

momon-ga

総合スコア4820

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

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

0

System.out.print( symbol );

System.out.print("*");

にしても同様のエラーが出ますか?

投稿2021/04/17 04:58

nfox

総合スコア229

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問