gpt4 book ai didi

java - 错误 : Unreachable code when trying to return two variables from a function.

转载 作者:行者123 更新时间:2023-11-29 09:43:21 24 4
gpt4 key购买 nike

此程序访问名为 indata.txt 的文件,该文件与程序本身保存在同一文件夹中。它只是一个简单的文本文件,其中保存了单词:绿黄蓝红

使用 Tokenizer,这些颜色词被保存到一个名为 String [] myarray; 的数组中

int numTokens; 应该计算每个单词保存在数组中的数量。

如果 numTokens = 4;,则 myarray [numTokens] = myarray [4]

然后数组以相反的顺序运行。

在方法 public static int mymethod 中,for 循环使用 numTokens 遍历数组。

变量 int len; 应该计算最长的单词有多少个字母。

然后这个值应该返回给main方法

public static void main (String[] args) 抛出 java.io.IOException, 然后打印出这个值。

然后,变量 int indexvalue; 应该计算数组中最长单词的位置。

例如:绿色 = 0,黄色 = 1,蓝色 = 2,红色 = 3。

然后应该使用 int indexvalue;

打印出数组中最长的单词
System.out.println("The largest length of the array is " +myarray [indexvalue]);

但是,该程序无法正常运行。此错误消息出现在编译器输出中:

错误:无法访问的代码

我需要将两个变量返回到 main 方法以将它们打印出来。

如果有的话,我的程序有什么问题?

 `import java.io.*;
import java.util.*;

public class MyFileReader
{
public static int mymethod (String [] myarray, int len, int numTokens, int length, int lengths, int indexvalue) {
for (numTokens = 3; numTokens >=0; numTokens-- ) {
length = lengths;
lengths= myarray [numTokens].length();
if (length > lengths) {
len = length;
indexvalue = numTokens;
}
else {
len = lengths;
}
}
return len;
return indexvalue; // error is here
}
public static void main (String[] args) throws java.io.IOException
{
int len =0;
int length =0;
int lengths =0;
int indexvalue =0;

String s1;
String s2;

BufferedReader br = new BufferedReader (new FileReader ("indata.txt"));

s1 = br.readLine();

System.out.println ("The line is " + s1);
System.out.println ("The line has " + s1.length() + " characters");

System.out.println ();
System.out.println ("Breaking the line into tokens we get:");

int numTokens = 0;
StringTokenizer st = new StringTokenizer (s1);

String [] myarray;
myarray = new String[4];

while (st.hasMoreTokens())
{
s2 = st.nextToken();
myarray [numTokens]= s2;
numTokens++;
System.out.println (" Token " + numTokens + " is: " + s2);
}
System.out.print("\n");
for (numTokens = 3; numTokens >= 0; numTokens--) {
System.out.println("Value of array is " +myarray [numTokens]);
}
System.out.print("\n");
System.out.println("Largest length value is " + mymethod(myarray, len, numTokens, length, lengths, indexvalue));
System.out.println("Index value is " + mymethod(myarray, len, numTokens, length, lengths, indexvalue));
System.out.print("\n");
System.out.println("The largest length of the array is " +myarray [indexvalue]);
}
}`

最佳答案

return len;
return indexvalue; // error is here

Java 不允许永远不会执行的代码。这包括返回语句后的任何代码。由于 return 语句退出该方法,因此永远无法读取它之后的任何内容。通常,多个返回在 if-else 条件下分支,这样只能执行其中一个。

编辑:如果想要一次返回多个变量,您可以返回一个数组,或者从一个包含您需要的字段的新类中返回一个自定义对象。

关于java - 错误 : Unreachable code when trying to return two variables from a function.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33403636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com