我是编程和这个网站的新手,所以就到这里吧。我想编写一个程序,允许将尽可能多的输入字符串添加到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
第二次输入不会中断循环。这是为什么?