嘿,我必须对下面的代码执行以下操作,但不确定如何正确地让它只打印事件日志溢出 - 终止一次。它的打印多次。要做:数组事件的长度是用一个名为 EVENT_MAX 的常量(一个最终整数)指定的。方法 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++; } } }}
1 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
您正在使用 size 初始化数组,5
但您正在插入 6 个元素。所以最后一次插入超出了数组的边界
您可以添加一个expandArray
被调用的函数,然后将现有元素添加到该新数组中。或者你可以使用ArrayList
添加回答
举报
0/150
提交
取消