アプリ版:「スタンプのみでお礼する」機能のリリースについて

問題
1.ArrayListのオブジェクトを生成する。
2.「何回入力しますか?」と出力し、標準入力をおこなう。
3.2で入力した回数分、以下の処理を繰り返す。
「n個目の値を入力してください」と出力し、標準入力を行う。(n=ループ回数)

入力された値をArrayListへ格納する。

4.ArrayListのサイズ分、以下の処理を繰り返す。
ArrayListより値を取得する。
取得した値を出力する。

結果
何回入力しますか?
3
1個目の値を入力してください。
hoge
2個目の値を入力してください。
poyo
3個目の値を入力してください。
hoo
hoge
poyo
hoo

自分で書いたプログラム
1 import java.util.ArrayList;
2 import java.io.*;
3
4 class ArrayList2{
5 public static void main(String[] args) throws IOException{
6
7 ArrayList list = new ArrayList();
8 list.add(n);
9
10 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11
12 System.out.println("何回入力しますか?");
13
14 String str = br.readLine();
15
16 int num = Integer.parseInt(str);
17
18 for(int i = n ; i < num; i++){
19 System.out.println("n個目の値を入力してください。");
20
21 String str1 = br.readLine();
22
23 }
24 }
25 }

どうもうまくいきませんので教えて下さい。

A 回答 (2件)

こんな感じでしょうか。



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Test2{
public static void main(String[] args) throws IOException{

System.out.println("何回入力しますか?");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());

//入力処理
ArrayList list = new ArrayList();
for(int i = 0 ; i < num; i++){
System.out.println("n個目の値を入力してください。");
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
list.add(br2.readLine());
}

//出力処理
for(int j=0 ; j < num ; j++){
System.out.println(list.get(j));
}
}
}
    • good
    • 0
この回答へのお礼

ありがとうございます。大変参考になりました。

お礼日時:2008/09/27 23:54

明らかにコンパイルが通らないソースなのですが・・・



さて、見た感じ・・・

>入力された値をArrayListへ格納する。

>4.ArrayListのサイズ分、以下の処理を繰り返す。
>ArrayListより値を取得する。
>取得した値を出力する。

の部分が丸々抜けてますね。
入力値の格納はループのところでやって、ループ終了後にArrayListの中身を出力すればよいかと思います。

この回答への補足

どうもそこらへんのことがよくわかりません。
すいませんが参考例としてお願いできませんでしょうか?

補足日時:2008/09/27 18:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!