所以我正在开发一个程序,该程序读取一行一或二(美元存储的东西),并返回一欧元硬币和两欧元硬币的数量。如果输入行中有2,它将从寄存器中取出一欧元硬币(返回给客户)。如果收银员用完一欧元硬币,它就会破产。所以这是我的问题,当我在cmd 1 1 1 1 1 2 1 1 1
中输入以下行时,应该在自己的行中分别返回此7 1
(在这里不知道如何做)。但它都返回0。P.S.:"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循环?任何帮助表示赞赏。而且我希望我使程序与静态方法一起工作的方式调用一个调用其他方法的非静态方法不会对您造成太大的困扰。