import java.util.*;
public class Question3 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("how");
list.add("are");
list.add("you?");
Scanner input = new Scanner(System.in);
System.out.println("How many repeats?");
int repeat = input.nextInt();
System.out.println("Before stutter: " + list);
stutter(list, repeat);
}
public static void stutter(ArrayList<String> list, int repeat){
ArrayList<String> modifiedList = new ArrayList<String>();
for(String str : list) {
for(int i = 0; i < repeat; i++)
modifiedList.add(str);
System.out.print(modifiedList);
}
}
}
print文は外側のループで実行されているので、各str
に対して一度modifiedList
を印刷します。それをメソッドの最後に移動して、最終結果を1回だけ出力します。
public static void stutter(ArrayList<String> list, int repeat){
ArrayList<String> modifiedList = new ArrayList<String>();
for(String str : list) {
for(int i = 0; i < repeat; i++)
modifiedList.add(str);
}
System.out.print(modifiedList);
}
'System.out.print(modifiedList);'は両方のループの外側にある必要があります。 – dave
質問に出ている出力を追加できますか? –
@daveコードが正しければ、彼は最後のプリントで正しい答えを得られませんか?配置はデバッグのテクニックのようです –