首页 > 解决方案 > 如何解决被跳过的 while 循环的问题?

问题描述

因此,我正在开发一个程序,该程序将读取一行或两行(美元商店的东西)并返回一个欧元硬币和两个欧元硬币的数量。如果输入行中有 2,则从收银机中取出一枚 1 欧元硬币(返回给客户)。如果收银员用完一欧元硬币,它就会破产。所以这是我的问题,当我在 cmd 中输入以下行时,1 1 1 1 1 2 1 1 1它应该7 1在自己的行中返回每个(不知道如何在这里执行)。但它都返回 0。 PS:"BANKROT"意味着破产。

这是我的代码:

import java.util.Scanner;

public class Tester {

Scanner sc = new Scanner(System.in);


public void program() {
    blagajna();
}

public void blagajna() {
    sc.useDelimiter(System.getProperty("line.separator"));

    int evrskiKovanec = 0;
    int dvoevrskiKovanec = 0;
    while (sc.hasNextInt()) {
        int kovanec = sc.nextInt();
        if (kovanec == 1)
            evrskiKovanec++;
        else if (kovanec == 2) {
            dvoevrskiKovanec++;
            if(evrskiKovanec == 0) {
                System.out.println("BANKROT");
                break;

            }
            evrskiKovanec--;
        }
    }
    System.out.printf("%d%n%d%n", evrskiKovanec, dvoevrskiKovanec); 
}


public static void main(String[] args) {
    Tester obj =  new Tester();
    obj.program();
    }
}

在尝试解决一个问题后,我sc.hasNextInt()没有停止使用新整数,我什至不确定问题出在哪里。我尝试使用println()打印出每个循环中的值,但它没有显示它,所以它是否有可能以某种方式跳过整个 while 循环?任何帮助表示赞赏。我希望我让这个程序与调用其他方法的非静态方法一起工作的静态方法不会打扰你太多。

标签: javaloopswhile-loop

解决方案


推荐阅读