返回值并在Java中调用其他方法

时间:2013-10-30 22:37:24

标签: java

我在代码的最后部分找不到我的错误。最后一部分(printMyProgress())方法无法正常工作。

调用printMyProgress()的名为printStudentProgress()的方法,将调用getMyName()getMyTimeSoFar()方法返回的值作为参数传递。

public class first {
String getMyName() {
  String name = "Nat";
    return name;  
}
int getMyTimeSoFar() {
    int time=0;
    return time;
}

 void printStudentProgress(String name, int time) {
     String minute ="";
     if (time>1) 
     minute = "minutes";
     else minute= "minute";
     print (name + " took " +time+ " "+  minute+" to reach Q7 in the Exam");     
 }

   int printMyProgress() {
       String name = "Nat";
       int time=0;
       printStudentProgress(name, time);
       return printMyProgress();  
   }
}

2 个答案:

答案 0 :(得分:2)

由于方法printMyProgress中的这个陈述:

return printMyProgress();

该方法将永远递归。如果您不依赖于返回值的方法,请使该方法不返回任何内容(使用void关键字而不是int)并删除return语句:

void printMyProgress() {
   String name = "Nat";
   int time=0;
   printStudentProgress(name, time);
}

答案 1 :(得分:0)

最后一个方法是递归(调用自身)。由于没有代码可以突破这种递归,应用程序最终会(快速)耗尽内存并崩溃。