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

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

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

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

Q&A

解決済

1回答

2124閲覧

同じ数字を入力したら特定の文字を出力したい

rink

総合スコア80

Java

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

0グッド

0クリップ

投稿2019/03/12 09:16

編集2019/03/12 09:28

java初心者です。よろしくお願いします。

java

1import java.util.Scanner; 2import java.util.ArrayList; 3 4 5 6class Matiuke{ 7 8 public static void main(String[] args){ 9 Scanner stdIn = new Scanner(System.in); 10 ArrayList<Integer> number = new ArrayList<Integer>(); 11 12 13 System.out.println("患者様の数"); 14 int n = stdIn.nextInt(); 15 int[] u = new int[n]; 16 int[] key = new int[n]; 17 int p = 0; 18 19 for(int i = 0; i < n; i++){ 20 21 22 // System.out.println("患者様の番号(1~n)"); 23 u[i] = stdIn.nextInt(); 24 number.add(u[i]);//uの配列の中を探索する時に他の配列に入れたら後で便利になると思った 25 key[i] = u[i]; 26 27 System.out.print("\n\n\n\n\n"); 28 //for(p = 0; p <= i; p++){ 29 if(number.contains(key[i])){ 30 System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 31 } 32 //} 33 34 for(int q = 0; q <= i; q++){ 35 System.out.print(u[q] + " "); 36 } 37 38 39 } 40 /*for(int i = 0; i < n; i++){ 41 System.out.print(u[i] + " "); 42 }*/ 43 44} 45 46 47 48} 49

数字を指定して、その数字を表示していきたいです。
その中で、同じ数字が入力されたらaの羅列を表示するように書いたつもりなのですが、このコードだとうまくいきませんでした。
これで実行しても毎回aの差列が一行だけ表示されてしまいます。
どうすればよいか教えてください!よろしくお願いします。。

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

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

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

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

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

dice142

2019/03/12 09:24

・現状何を入力してどう出力されるのか ・理想は何を入力して何が出力されることなのか を質問文に追加してください。
rink

2019/03/12 09:28

了解しました。すいません。
cateye

2019/03/12 09:31

まず、「同じ数字を入力したら特定の文字を出力したい」 同じ数字というのは何処で入力するのですか? 特定の文字というのはなんですか? “後で便利になると思った”のはなぜですか? あなたが期待する出力とはなんですか?
rink

2019/03/12 09:37

病院の待ち受け画面みたいなものを作りたいなぁと思ったわけなんですけど、 同じ数字というのは何処で入力するのですか? プログラムを見たらわかると思います 特定の文字というのはなんですか? aaaaaaaaaaaaaaaのことです “後で便利になると思った”のはなぜですか? 病院の待ち受け画面みたいなものを作りたいなぁとおもったから あなたが期待する出力とはなんですか? 2と入力したら②と表示されて、3と入力したら 2 3 と表示されて、また2と入力したら 2 3 2 aaaaaaaaaaaaaaaaaa という感じです。
guest

回答1

0

ベストアンサー

Java

1 u[i] = stdIn.nextInt(); 2 number.add(u[i]);//uの配列の中を探索する時に他の配列に入れたら後で便利になると思った 3 key[i] = u[i];

ここでu[i]key[i]も同じものが入り、numberにその場で追加しているので

Java

1 if(number.contains(key[i])){ 2 System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 3 }

ここで必ずif文がtrueになりますね。

numberへの追加や含まれているかの判定をいつ行うべきか考えてみてください。

投稿2019/03/12 09:42

編集2019/03/12 09:44
dice142

総合スコア5158

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

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

rink

2019/03/12 09:57

なるほど… もっと自分で考えてみます! 分かりやすい解説ありがとうございました!!!
dice142

2019/03/12 09:58

コードを目で追えれば見つけやすくなるのですが、最初は紙などに変数の変わり方を書き記しながら追っていくといいですよ。
rink

2019/03/12 13:53

なるほど!勉強になります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問