当前位置: 首页 > 知识库问答 >
问题:

Java-制作int数组或double数组

督飞鸣
2023-03-14

我正在尝试制作一个程序,要求使用min和max以及数组的长度,根据用户输入的max和min(int或double),它将创建一个int或do倍的数组。我的代码的问题是,当我试图运行它时,编译器说变量尚未初始化。我假设做一个重载方法更好,但我不确定如何做。

import java.util.Scanner;
public class RandomGames{
 public static void main(String [] args){
  randomArray();

  }//end of main
public static void randomArray(){ 
  Scanner input = new Scanner(System.in);
  System.out.println("Please enter the length of desired array: ");
  int length = input.nextInt();
  int [] randomNumbers = new int [length];
  System.out.println("Please enter the highest number: ");
  if (input.hasNextInt()){
     int max = input.nextInt();
     }
  else if (input.hasNextDouble()){
     double max = input.nextDouble();
  }
  System.out.println("Please enter the Lowest number: ");
  if (input.hasNextInt()){
     int min = input.nextInt();
     }
  else if (input.hasNextDouble()){
     double min = input.nextDouble();
  }
  arrayReturn(max, min);
  } //end of randomArray
public static void arrayReturn(int max, int min){
  System.out.println("This will return "+max+"min :"+ min +"in int");
  }
 public static void arrayReturn(double max, double min){
  System.out.println("This will return "+max+"min :"+ min +"in double");   

  }
}   

共有2个答案

上官修文
2023-03-14

您已经初始化了 if 语句中的最小值和最大值变量。在 if 语句的作用域之外,您无法访问已在内部初始化的变量。

尹冠宇
2023-03-14

如果在大括号中声明变量,如

if (input.hasNextInt()){
     int max = input.nextInt();
}

则它们仅在此范围内可见。

所以你至少需要换成

int max = 0;
if (input.hasNextInt()){
     max = input.nextInt();
}

现在,由于您也对double使用相同的方法,因此可能会为double创建一个新变量,例如

double maxD = 0.0;
else if (input.hasNextDouble()){
     maxD = input.nextDouble();
  }

注意事项

我不确定您生成< code >数组的逻辑,但是如果您要为两个数字之间的doubles生成一个数组,那么您将有无限个值。

为了正确地做事,我建议您编写自己的类来扩展Number,为简单起见,您的类的构造函数可以采用布尔值来说明它是Double还是int。

 类似资料:
  • 问题内容: 我试图将我的int数组的内容复制到double类型的数组中。我必须先铸造它们吗? 我成功地将一个int类型的数组复制到另一个int类型的数组。但是,现在我想编写代码,将内容从Array复制到Array (从int到double)。 这是我的代码: 问题答案: 您可以遍历源代码的每个元素,并将它们添加到目标数组。您不需要从到的显式强制转换,因为范围更广。 您可以制作这样的实用程序方法-

  • 问题内容: 假设地,我有5个字符串数组对象: 我希望另一个数组对象包含这5个字符串数组对象。我该怎么做?我可以把它放在另一个数组中吗? 问题答案: 像这样: 要么 (后一种语法可以用于变量声明之外的赋值中,而较短的语法仅适用于声明。)

  • 我如何解释以下内容: 打印2.29999 打印2.3

  • 我正在尝试用java swing制作一个Tic-Tac-Toe程序,我已经制作了框架。如何让JButton数组中的按钮激活int数组?我希望int数组保存Tic-Tac-Toe网格中点的值,因此当按下按钮时,int数组中的对应点将是0或1,按钮的文本将更改为X或O。

  • 问题内容: 我有一个双重数组。我尝试了如下操作 它不打印任何内容。然后我把它做成一个双数组 它打印。 有人可以解释为什么存在这种差异吗? 问题答案: 您的第一个调用实际上是返回-将参数自动装箱,因为a 不是…。泛型不允许将基本类型用作类型参数。 如果您要将a 转换为,则需要手动执行,或使用第三方库来执行。例如: 请注意,与数组的任何后续更改不同,它 不会 反映在列表中,反之亦然-它是副本,而不是视

  • 问题内容: 当我尝试将double数组转换为Double arrayList时,出现以下错误: 线程“主”中的异常java.lang.ClassCastException:[无法将D强制转换为java.lang.Double 下面是我的代码。 我正在将此列表与另一个列表进行比较,并将结果分配给另一个double变量。 请让我知道此错误的原因。 问题答案: las,不适用于原语。Apache com