[英]Do-while loop issue
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);
}
}
I have this problem with my code: I want to read countries into ArrayList
containing country's name (nimi), capital (pääkaupunki), and population (asukasluku), until the user enters empty string as name of the country (just presses enter). 我有这个问题,我的代码:我想读个国家到
ArrayList
含有的国名(NIMI),资本(pääkaupunki),人口(asukasluku),直到用户输入作为国家的名称(只是按下回车)空字符串。
However when the code enters next round, netbeans just prints out the question: "Anna valtion nimi: " (give country's name), and finishes the program (BUILD SUCCESSFUL), WITHOUT giving the chance to enter new Country... 但是,当代码进入下一轮时,netbeans只是打印出一个问题:“ Anna valtion nimi:”(给出国家/地区的名称),然后完成程序(BUILD SUCCESSFUL),而没有机会进入新的国家/地区。
You must add a nextLine
after your nextInt
to consume the rest of the line that contained that int
: 您必须在
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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.