Java &引用;缺少返回语句“;,带while循环
此代码遇到返回错误。如果有人告诉我如何解决这个问题,我将不胜感激,而且比前者更重要的是,我将解释为什么有必要这样做。我的教授在解释很多东西是如何工作的方面做得很差,所以现在我觉得我需要学习很多应该已经知道的东西。谢谢大家Java &引用;缺少返回语句“;,带while循环,java,return,Java,Return,此代码遇到返回错误。如果有人告诉我如何解决这个问题,我将不胜感激,而且比前者更重要的是,我将解释为什么有必要这样做。我的教授在解释很多东西是如何工作的方面做得很差,所以现在我觉得我需要学习很多应该已经知道的东西。谢谢大家 import java.io.*; //Imports any file operation (ie Reading or Writing) import java.util.Scanner; //Imports scanner clas
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;
}
}
如果
e
不等于temp
,则不会有返回
语句。此外,如果用于循环,则可能需要使用,因为while
用于循环。但就你所写的,这不是一个循环。当程序进入时,它将立即返回。或者,可能您的代码尚未完成,您想在中放入一些内容,而。然后您应该在while
之后添加一个{}
括号块
while(e.equals(temp)) {
// do something
}
return null; // maybe you shouldn't return null. You should return a String
此声明
while (e == temp)
return null;
如果(且仅当)e具有temp的引用标识,则将返回null。所以,你应该使用equals。最后,如果从未进入该循环,则需要返回一些内容(就JRE而言,这是一个有效的路径)-
您需要确保无论代码中发生了什么,您都会返回一些内容。如果您有条件语句(If
)或循环(for
或while
),则需要确保在条件块或循环从未执行的情况下有返回语句
例如:
public int example(int n){
while (n > 0)
return n;
//what happens if n is <= 0?
}
public int示例(int n){
而(n>0)
返回n;
//如果n是what ife
不==temp
,会发生什么?它不会。读:。你真的不需要profs帮助。在上面的代码中,只有当你进入while循环时才会执行返回。如果代码没有进入while循环,那么你就不会返回这种情况下的任何东西。顺便说一句,你为什么不总是把代码放在r{}中的while循环
?我不知道教授怎么能解释得这么糟糕。离题,但你应该知道:Java类应该大写为大写开始CAMELCASE
。变量名应该大写为小写开始CAMELCASE
。因此你的类应该是Program7
,方法应该是makeFile()
并且您的变量应该是nameOfDataFile
、fileObj
和InputedText
。但是,我们把它们称为dataFileName
、file
和input
(更简洁,冗余更少)。可能重复一些细微的吹毛求疵——temp.equals(e)在e为null的情况下,它的鲁棒性稍微强一些。
public int example(int n){
while (n > 0)
return n;
//what happens if n is <= 0?
}