简体   繁体   English

同时执行循环问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM