我想创建一个模拟市场寄存器的类,项目要求在用户给出我们需要多少个寄存器后,他必须在下面的表格中给出一个字符串:
for exaple:0 0 0 1 1 1 2 2 2 3 3 5 5 6 6
这意味着有3位顾客进入商店0位,3位顾客在1时进入商店等。
这是我的代码:
import java.util.Scanner;
import java.io.*;
public class QueueSimulation
{
public static void main(String[] args)
{
int a;
int i = 0;
String input;
Scanner s = new Scanner(System.in);
int A[] = new int[10000];
System.out.println("This programs simulates a queue of customers at registers.");
System.out.println("Enter the number of registers you want to simulate:");
a = s.nextInt();
while(a==0 || a <0){
System.out.println("0 registers or no registers is invalid. Enter again: ");
a = s.nextInt();
}
int fifo[] = new int[a];
System.out.println("Enter how many customers enter per second.For example: 0 0 1 1 2 2 2 3 3.
Enter : ");
input = s.nextLine();
while(s.hasNext()){
while(s.hasNextInt()){
A[i] = s.nextInt();
i++;
}
s.close();
}
s.close();
}
}
代码编译很好,但是当我运行它时,2 while循环和程序nevers结束或停止时出现问题。如果你有时间,你会明白并且你会理解。我不知道也许我把close()方法放错了?请帮忙。
答案 0 :(得分:0)
您在给定代码中缺少s.next();
。
while(s.hasNext()){
while(s.hasNextInt()){
A[i] = s.nextInt();
i++;
}
// here s.next() is missing...
s.close();
}
请在程序的第二次循环结束之前添加s.next();
语句,以便正确迭代您的程序......