私はプログラミングとこのウェブサイトが初めてなので、ここに行きます。できるだけ多くの入力文字列を に追加できるプログラムを書きたかったのArrayList
です。そこでwhile
、次のコードでループを使用しました。私が意図したのは、入力が0
.
import java.util.*;
public class AddToList2
{
static Scanner q = new Scanner(System.in);
public static void main(String[] args)
{
ArrayList<String> inputlist = new ArrayList<String>();
while (true)
{
System.out.print("Enter something here: ");
String x = q.nextLine();
inputlist.add(x);
if (x.equals("0"));
break;
}
}
プログラムはエラーなくコンパイルされましたが、悲しいことに、プログラムを何度も実行すると、入力が何であれループが壊れました。これを解決する方法はありますか?
まあ、それは私の不注意でした !とにかく、私はこれの何が悪いのかを知るためにそのプログラムを作成しました:
ArrayList<String> endangeredlist = new ArrayList<String>();
ArrayList<Integer> popn = new ArrayList<Integer>();
while (true)
{
System.out.print("Name an animal: ");
String animal = q.nextLine();
endangeredlist.add(animal);
if (animal.equals("EXTERMINATE"))
break;
q.next();
System.out.print("How many are left in the wild? ");
int numberleft = q.nextInt();
popn.add(new Integer(numberleft));
}
(これは、より大きなプログラムの一部です。) 私の意図は、動物名の入力がEXTERMINATE
. 悲しいことに、最初の入力ラウンドが だった場合、プログラムは NoSuchElement 例外をスローし、EXTERMINATE
最初に別の何かを入力した場合はループが開始されますが、EXTERMINATE
2 回目のラウンドを入力してもループは中断されません。何故ですか?