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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

Q&A

解決済

3回答

3179閲覧

for文 個数分だけ数字を表示するプログラム

2250z

総合スコア17

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

0グッド

0クリップ

投稿2018/11/23 06:55

前提・実現したいこと

個数を示す数値を入力し、その個数分だけ 0 ~ 9 の数字を表示し,数字は 0, 1, 2, 3, , の順に表示し、9 の次は 0 に戻る.
というプログラムを作成したいです。

試したこと

BufferedReader br = new BufferedReader(
new InputStreamReader( System.in ) );
int count = Integer.parseInt( br.readLine() );

for( int i = 0 ; i < count ; i++ )
ここからどうすればいいかわかりません。

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

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

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

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

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

guest

回答3

0

ベストアンサー

for( int i = 0 ; i < count ; i++ )

ここからどうすればいいかわかりません。

iを10で割った時の余りを表示すれば良いです。
剰余演算子%の使い方を調べてください。


便乗。こんな方法もあります。

Java

1System.out.println( 2 IntStream.range(0, count) 3 .map(n -> n % 10) 4 .mapToObj(String::valueOf) 5 .collect(Collectors.joining(", ")) 6);

物凄く気が向いたら分析してみると面白いかもしれません。

投稿2018/11/23 06:57

編集2018/11/23 08:01
LouiS0616

総合スコア35660

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

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

0

複数の方法で書いてみました。

一般的には、最初の方法をつかうとおもいますが, 最後のCollections.nCopies を使う方法もそれなりに味わいがあると思います。

java

1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.Collections; 5 6class Main { 7 public static void main(String[] args) throws NumberFormatException, IOException { 8 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 9 int count = Integer.parseInt(br.readLine()); 10 11 for (int i = 0; i < count; i++) { 12 System.out.print(i % 10); 13 } 14 System.out.println(); 15 16 String pattern = "0123456789"; 17 String ans = ""; 18 for (int i = 0; i < count; i++) { 19 ans += pattern.charAt(i % 10); 20 } 21 System.out.println(ans); 22 23 ans = ""; 24 for (int i = 0; i < count / 10 + 1; i++) { 25 ans += pattern; 26 } 27 System.out.println(ans.substring(0, count)); 28 29 System.out.println((new String(new char[count / 10 + 1]).replace("\0", pattern)).substring(0, count)); 30 System.out.println(String.join("", Collections.nCopies(count / 10 + 1, pattern)).substring(0, count)); 31 } 32}

実行例
イメージ説明

今後、学習を進めて行く場合も、一つの方法で満足せずに別の方法も検討するべきです。
その上で今はどの方法を選ぶのがベターなのか? を考えるようにすると良いと思います。

投稿2018/11/23 07:57

katoy

総合スコア22324

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

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

0

自分も書いてみた。
剰余算ってコストかかる計算だった気がするから剰余算を使わずに書いてみた。

java

1import java.util.*; 2import java.util.stream.*; 3 4public class Main { 5 public static void main(String[] args) throws Exception { 6 int count = 24; 7 String str = Stream.generate(() -> IntStream.range(0, 10)) 8 .flatMapToInt(s -> s) 9 .limit(count) 10 .mapToObj(Integer::toString) 11 .collect(Collectors.joining(", ")); 12 System.out.println(str); 13 } 14} 15

投稿2018/11/24 01:28

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問