此代码遇到返回错误。我很感激被告知如何解决它,更重要的是比前者解释为什么有必要这样做。我的教授在解释许多事情是如何工作的时候做了一个非常好的工作,所以现在我觉得我需要学习很多应该知道的事情。谢谢大家!
import java.io.*; //Imports any file operation (ie Reading or Writing)
import java.util.Scanner; //Imports scanner class
import javax.swing.JOptionPane; //Import JOptionPane to allow dialog boxes
public class program7
{
public String MakeFile() throws IOException
{
String NameofDataFile, inputted_text, temp, e;
temp = "";
NameofDataFile=JOptionPane.showInputDialog("Enter the name of the file to be opened: "); //creates file with entered name
/*allows file to be written in*/
PrintWriter FileObj = new PrintWriter (new FileWriter (NameofDataFile));
inputted_text=JOptionPane.showInputDialog("Enter a String: "); //asks user for a string
e = inputted_text;
while (e == temp)
return null;
}
}
答案 0 :(得分:1)
如果e
不等于temp
,则不会有return
语句。此外,您可能希望使用if
,因为while
用于循环。但就你写的而言,这不是一个循环。程序将在进入while
后立即返回。或者你的代码可能没有完成,你想在while
内放一些东西。然后,您应在{}
之后添加while
括号块。
while(e.equals(temp)) {
// do something
}
return null; // maybe you shouldn't return null. You should return a String
答案 1 :(得分:0)
本声明
while (e == temp)
return null;
如果(且仅当)e具有带temp的引用标识,则返回null。所以,你应该使用equals。最后,如果从未输入该循环,则需要返回一些内容(就JRE而言,这是一个有效的路径) -
if (e.equals(temp)) {
// if e is equal to temp, no need for a while as far as I see.
return null;
}
return e;
答案 2 :(得分:0)
您需要确保无论您的代码中发生了什么,都会返回一些内容。如果您有条件语句(if
)或循环(for
或while
),则需要确保对于条件块或循环的情况有一个return语句从不执行。
例如:
public int example(int n){
while (n > 0)
return n;
//what happens if n is <= 0?
}