public class Valtiotesti
{
public static void main(String[] args)
{
Scanner lukija = new Scanner(System.in);
String nimi, pääkaupunki;
int asukasluku;
ArrayList<Valtio> valtiot = new ArrayList<Valtio>();
do{
System.out.println("Anna valtion nimi: ");
nimi = lukija.nextLine();
if(nimi.length()>0){
System.out.println("Anna ko. valtion pääkaupunki: ");
pääkaupunki = lukija.nextLine();
System.out.println("Anna ko. valtion asukasluku: ");
asukasluku = lukija.nextInt();
Valtio valtio = new Valtio(nimi, pääkaupunki, asukasluku);
valtiot.add(valtio);
}
}
while(nimi.length()>0);
}
}
我的代码有这个问题:
我想将国家读入包含国家名称 (nimi)、首都 (pääkaupunki) 和人口 (asukasluku) 的 ArrayList
,直到用户输入空字符串作为国家名称(只需按回车)。
然而,当代码进入下一轮时,netbeans 只是打印出问题:“Anna valtion nimi:”(给出国家名称),并完成程序(BUILD SUCCESSFUL),而没有机会进入新的国家......
最佳答案
您必须在 nextInt
之后添加一个 nextLine
以使用包含该 int
的行的其余部分:
if(nimi.length()>0){
System.out.println("Anna ko. valtion pääkaupunki: ");
pääkaupunki = lukija.nextLine();
System.out.println("Anna ko. valtion asukasluku: ");
asukasluku = lukija.nextInt();
Valtio valtio = new Valtio(nimi, pääkaupunki, asukasluku);
valtiot.add(valtio);
lukija.nextLine();
}
关于java - do-while 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26995374/