ユーザーの入力をリストに追加して、逆の順序で表示しようとしています。ユーザーはここに私のコードだ0に入るまでの要素が追加されます。リストに入力を追加する
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class InputInArrrayList{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
List<Integer> myList = new ArrayList<>();
while(a > 0) {
myList.add(a);
if (a == 0){
break;
}
}
Collections.reverse(myList);
System.out.println(myList);
}
}
しかし、それは代わりに0だと、ループが壊れていない、それはOutOfMemoryErrorが発生スロー:Javaヒープスペースを。私は間違って何をしていますか?
1つの入力(ループの前)を読み取るだけです。 – Eran
そして0より大きい場合は無限ループに入ります – bmarkham
あなたの心の中であなたのコードを実行しようとしてください。例:ユーザが「5」を入力する。 '5> 0'なので、whileループに入ります。あなたはリストに '5'を追加します。 '5!= 0'なので、whileは壊れません。ループの状態をもう一度チェックして、「5」はまだ「0」より大きいです。それはリストに再び追加されます。休憩なし。別のループサイクル。あなたは問題が見えますか? :) – Oneiros