Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 返回两个不同的字符串_Java_String_Return - Fatal编程技术网

Java 返回两个不同的字符串

Java 返回两个不同的字符串,java,string,return,Java,String,Return,是否可以执行此代码尝试执行的操作当前代码格式导致错误 public String fileStream(){ Object[] yesNo = {"Yes", "No",}; int nn = JOptionPane.showOptionDialog(null,"Would you like to use previously entered data?","Welcome Back?",JOptionPane.YES_NO_OPTION,JOptionPane.QU

是否可以执行此代码尝试执行的操作当前代码格式导致错误

public String fileStream(){
    Object[] yesNo = {"Yes",
          "No",};
int nn = JOptionPane.showOptionDialog(null,"Would you like to use previously entered data?","Welcome Back?",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE, null, yesNo,yesNo[1]);
    if (nn == 0){
        String savedBallNumber = readFromFile();
        return savedBallNumber;
    }
    if (nn == 1){
        String ballNumber = JOptionPane.showInputDialog("Please enter the number of balls you want on the screen:");
        return ballNumber;
    }
}

将鼠标悬停在fileStream上时出现的错误是此方法必须返回字符串类型的结果

您的问题是您的代码在两个if块中返回,但没有else块,这意味着该方法有可能在不返回任何内容的情况下结束:

例如:

public String someMethod {
  if (a) {
    return "foo";
  }
  if (b) {
    return "bar";
  }
}
如果a和b都不是真的,它会返回什么

解决方案:将最后一个if块更改为else块:

public String fileStream() {
  Object[] yesNo = { "Yes", "No"};
  int nn = JOptionPane.showOptionDialog(null,
        "Would you like to use previously entered data?", "Welcome Back?",
        JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
        yesNo, yesNo[1]);
  if (nn == 0) {
     String savedBallNumber = readFromFile();
     return savedBallNumber;
  } else {
     String ballNumber = JOptionPane.showInputDialog("Please enter the number of balls you want on the screen:");
     return ballNumber;
  }
}

您的问题是,您的代码在两个if块中返回,但没有else块,这意味着该方法有可能在不返回任何内容的情况下结束:

例如:

public String someMethod {
  if (a) {
    return "foo";
  }
  if (b) {
    return "bar";
  }
}
如果a和b都不是真的,它会返回什么

解决方案:将最后一个if块更改为else块:

public String fileStream() {
  Object[] yesNo = { "Yes", "No"};
  int nn = JOptionPane.showOptionDialog(null,
        "Would you like to use previously entered data?", "Welcome Back?",
        JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
        yesNo, yesNo[1]);
  if (nn == 0) {
     String savedBallNumber = readFromFile();
     return savedBallNumber;
  } else {
     String ballNumber = JOptionPane.showInputDialog("Please enter the number of balls you want on the screen:");
     return ballNumber;
  }
}

如果您遇到错误,请发布它。您可能还需要在函数末尾返回一个值。编译器可能不够聪明,无法知道nn只有两种可能。@dasblinkenlight:数组声明中允许使用额外的逗号。抱歉,伙计们,用代码更新了@dasblinkenlight:有关这方面的详细信息,请访问:数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,该逗号将被忽略。如果出现错误,请将其发布。您可能还需要在函数末尾返回一个值。编译器可能不够聪明,无法知道nn只有两种可能。@dasblinkenlight:数组声明中允许使用额外的逗号。抱歉,伙计们,用代码更新了@dasblinkenlight:有关此内容的详细信息,请访问:数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,因此将被忽略。请同时删除数组中的一个额外逗号。@PM77-1:有关此内容的详细信息,请访问:数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,并且将被忽略。不知道它是正式的允许。Thx.在数组中也删除一个额外的逗号。@PM77-1:有关这方面的详细信息,请访问:数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,该逗号将被忽略。不知道这是正式允许的。谢谢。