问题描述:
System.out.println("请输入初始的请求I/O表,依次输入进程名,柱面号,磁道号,物理记录号");
IOtableEntry ioe=new IOtableEntry();
while(!in.hasNext("end"))
{
ioe.processName=in.next();
ioe.cylinderNumber=in.nextInt();
ioe.trackNumber=in.nextInt();
ioe.physicalRecord=in.nextInt();
IOT.io[IOT.entryNum++]=ioe;
}
System.out.print("请输入在[0,1]区间内的一个随机数:");
double ran=in.nextDouble();//这句报错了
可是为什么呢?不是也是double吗?参数一致啊,没有mismatch吧
原因分析:
还有“end”没接收呢
解决方案:
System.out.println("请输入初始的请求I/O表,依次输入进程名,柱面号,磁道号,物理记录号");
IOtableEntry ioe=new IOtableEntry();
while(!in.hasNext("end"))
{
ioe.processName=in.next();
ioe.cylinderNumber=in.nextInt();
ioe.trackNumber=in.nextInt();
ioe.physicalRecord=in.nextInt();
IOT.io[IOT.entryNum++]=ioe;
}
System.out.print("请输入在[0,1]区间内的一个随机数:");
String next=in.next();//就是“end”,废弃
double ran=in.nextDouble();
这样就可以了