嘿,我必须对下面的代码执行以下操作,并且不确定如何正确获取它以仅打印事件日志溢出-终止一次。多次打印。
要执行的操作: 数组事件的长度由一个常量(最后一个int)指定,该常量称为 EVENT_MAX ii。方法recordEvent检查数组事件中是否还有剩余空间 存储另一个事件(提示:比较xevent和EVENT_MAX)。如果没有,则 信息: 事件日志溢出-终止 应该输出,并通过以下方法调用终止程序: System.exit(1);
class RecordEvents2 {
public static void main (String args[]) {
Recorder r1 = new Recorder (100,100,"Wombat Detection");
r1.recordEvent("10:53");
r1.recordEvent("10:59");
r1.recordEvent("11:05");
r1.recordEvent("12:59");
r1.recordEvent("13:50");
r1.recordEvent("14:06");
r1.printEvents();
}
}
class Recorder {
int xPos,yPos;
String eventType;
String [] event = new String [5];
final int EVENT_Max = 0;
int xevent = 0;
Recorder (int xPos, int yPos, String eventType ) {
this.xPos = xPos;
this.yPos = yPos ;
this.eventType = eventType;
}
void recordEvent (String eventTime ) {
event [xevent] = eventTime;
xevent++;
if (xevent > EVENT_Max){
System.out.println ("Event log overflow - terminating");
}
}
void printEvents(){
System.out.println ("Record of " + eventType +
" events at [" + xPos + "," + yPos + "] " );
int index=0;
for (String current: event) {
if (xevent > index){
String ss=String.format("Event number %s was recorded at ",index);
System.out.println(ss + current);
index++;
}
}
}
}
答案 0 :(得分:5)
您正在初始化大小为5
的数组,但是要插入6个元素。所以最后一次插入超出了数组的范围
您可以添加一个被调用的expandArray
函数,然后将现有元素添加到该新数组中。或者,您可以使用ArrayList