java - 如何解决被跳过的 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 循环?任何帮助表示赞赏。我希望我让这个程序与调用其他方法的非静态方法一起工作的静态方法不会打扰你太多。
解决方案
推荐阅读
- python - 有没有办法将 DICOM 数据发送到远程 PACS 服务器上的特定目录?
- kubernetes - Kubernetes 配置映射符号链接(..data/):有没有办法避免它们?
- c# - Response.outputstream.write 与 Response.BinaryWrite
- node.js - 避免使用 cy.wait() 等待页面加载由于 get request cypress 中止
- reactjs - React 路由器:添加动态 URL
- coq - 如何在没有安装指南的情况下安装 Coq 库?
- sql - 为插入编写此 sql 的正确方法是什么?
- python - numpy.sum 性能取决于轴
- python - 在数组中选择 N 个均匀分布的元素,包括第一个和最后一个
- java - Android应用程序在打电话时崩溃