我一直在努力工作几个小时,但我似乎无法找到解决方案。代码基本上是一个约会程序,当它运行时弹出一个框,'秘书'插入名称和病人的时间。但是,如果我将“Maria”置于“1200”并再次将“John”置于“1200”,系统将立即将John替换为John。我的代码如下:
String[] names = new String[2400]; // from 0:00 until 24:00
void setup()
{
String name = "";
do
{
name = input("Name");
if (name.equals("ABORT")) {
System.exit(0);
} // end the program
int time = int(input("Time code (e.g. 840 or 1200)"));
names[time] = name;
showAllNames();
}
while (true); // loop never ends
}
void showAllNames() // shows all the times where there is a name
{
for (int t = 0; t < 2400; t=t+1)
{
String name = names[t];
if (name!=null)
{
println(t + "\t" + name);
}
}
println("================");
}
public String input(String prompt)
{
return javax.swing.JOptionPane.showInputDialog(null, prompt);
}
如何在写入之前添加一个if命令来检查位置是否为空 - 否则会警告用户?
答案 0 :(得分:0)
在写入之前检查索引是否为null
:
if(names[time] == null){
//Add the name
} else {
//If the name isn't null, perhaps go to the next index, or throw an exception
}
如果名称为null
,您想要做什么完全取决于您。
我想补充一些建议:
将您的名称变量设为ArrayList
,这样您就可以在不更改变量的情况下添加任意数量的名称。
不要在循环中调用showAllNames()
方法,而是在循环结束后调用它。
使用普通索引而不是时间索引,这样您就不必进行空检查。