java - do-while 循环问题

标签 java loops do-while

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/

相关文章:

java - 如何在Java中通过executeUpdate命令使用Access的Replace()函数?

IntelliJ IDEA 中的 JAVA 11 和 JavaFX

string - 如何在mips程序集中迭代字符串

java - do-while 循环内变量的作用域

java - While 循环因用户名/密码不匹配而退出

java - JAXB - 将节点添加到 XML 作为 html 链接

java - 绘制组件会重复自身,无需任何用户交互

python - 如何创建石头剪刀布程序

java - do-while 循环不会结束并使程序崩溃

java - 在Java中打印60秒倒计时