Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;缺少返回语句“;,带while循环_Java_Return - Fatal编程技术网

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 if
e
==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?
}