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);
}
}
我的代码存在这个问题:
我想将国家/地区读成ArrayList
,其中包含国家/地区名称(nimi),首都(pääkaupunki)和人口(asukasluku),直到用户输入空字符串作为国家名称(只需按Enter键)。
然而,当代码进入下一轮时,netbeans只打印出问题:“Anna valtion nimi:”(给国家名称),并完成程序(BUILD SUCCESSFUL),没有机会进入新的国家......
答案 0 :(得分:4)
您必须在nextLine
之后添加nextInt
以使用包含该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();
}