我使用的方法需要循环,并且我已经成功地通过添加新方法来尝试将循环分开。我在下面粘贴了部分代码。 我目前收到错误消息"缺少退货声明"虽然我知道为什么会这样,但我不确定如何继续。任何帮助或建议将不胜感激!感谢。
public String addJob(String cust,boolean onSite, boolean sHand, String lang)
{ int nt = 100;
if (customers.containsKey(cust))
{
if (0 >= getCustomerCredit(cust)) {
return " Customer over credit limit "; }
if (nt >= getCustomerCredit(cust))
{
Job jb = new Job(cust, onSite, sHand, lang);
job.put(jb, getNewJobNo());
if(lang != "English")
{
isStaffAvailableWork(trnsltr);}
if(sHand == false)
{ isStaffAvailableWork(clk);
}
else { isStaffAvailableWork(typst);
}
}
}
else {
Customer c = new Customer(cust);
customers.put(cust, ntnt);
Job jb = new Job(cust, onSite, sHand, lang);
job.put(jb, getNewJobNo());
if(lang != "English")
{
isStaffAvailableWork(trnsltr);}
if(sHand == false)
{ isStaffAvailableWork(clk);
}
else { isStaffAvailableWork(typst);
}
}
}
public String isStaffAvailableWork(Staff stf)
{
if (staff.containsKey(stf)&&(stf.isStaffAvailable()==true))
{
jb.setJobStatusOnGoing();
stf.setStaffBusy();
jobNoAndstaffId.put(staff.get(stf), job.get(jb));
return "Staff allocated: " + stf;
}
if (staff.containsKey(stf)&&(stf.isStaffAvailable()==false))
{
jb.setJobStatusWaiting();
return "Job Waiting";
}
else return null;
}
答案 0 :(得分:2)
您的问题有点宽泛,但您的问题是您的功能在某种程度上没有回馈价值。函数可以退出的每一行都必须返回一些内容。
public bool foo(var x)
{
if(x == 0)
{
// Returns successfully.
return true;
}
else if(x != 0)
{
// Didn't return anything.
}
// Also didn't return anything.
}
答案 1 :(得分:0)
Elliott Frisch在评论中回答了这个问题。
问题是您的addJob
没有返回任何内容。
你有这样的地方:
isStaffAvailableWork(trnsltr);
你需要
return isStaffAvailableWork(trnsltr);
就目前而言,该方法不会返回任何内容,因此您的编译器就这么说了。