gpt4 book ai didi

Java:局部变量可能尚未初始化?

转载 作者:行者123 更新时间:2023-12-01 08:06:03 25 4
gpt4 key购买 nike

问题:编写一个读取实数列表的程序。程序结束后,它应该只打印出唯一的数字。也就是说,仅在列表中出现一次的数字。如果列表中的唯一号码超过 50 个,则您应该只打印前 50 个。

import java.util.*;
import java.io.*;
import java.util.Arrays;


public class Hmwk {

public static void main(String[] args) throws FileNotFoundException {
Scanner input=new Scanner (new File ("input.txt"));
int n = 0;
final int MAX_SIZE = 50;
double[] numbersArray;
while (input.hasNextDouble() && n<MAX_SIZE){
double in = input.nextDouble();
if (inList(in,numbersArray))
numbersArray[n]=in;
n++;

}
printReport(numbersArray);
}


public static boolean inList(double number, double[] list){
for (double i : list) {
if (i == number){
return false;
}
else
return true;
}
}

public static void printReport(double[] list) {
System.out.printf("The unique numbers were", Arrays.toString(list));
}

}

我收到错误消息,指出numbersArray 可能尚未初始化。我还收到一条错误消息,说我的 boolean 方法 inList 必须返回 boolean 类型,这让我很困惑,因为我有两个返回 true 或 false 的选项。非常感谢任何帮助。

最佳答案

事实上,你的变量

double[] numbersArray;

未初始化,只是声明。您可以将其初始化为:

double[] numbersArray = new double[MAX_SIZE];
<小时/>

发表评论后:

It prints out "The unique numbers were" but thats it, no unique numbers

您正在使用

System.out.printf("The unique numbers were",Arrays.toString(list));

两个选项:

  1. 使用 %s 发送 String 参数,您希望/需要将数组打印为字符串:

    System.out.printf("The unique numbers were %s.",Arrays.toString(list));
  2. 使用System.out.println

    System.out.println("The unique numbers were " + Arrays.toString(list));

关于Java:局部变量可能尚未初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559718/

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