繁体   English   中英

Java制作的int数组或double数组

[英]Java- making int array or double array

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

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");   

  }
}   

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

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

那么它们仅在此范围内可见。

因此,您至少需要更改为

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

现在,当你也使用相同的doubles那么也许创造了一个新的变量doubles

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

注意

我不确定生成arrays的逻辑,但是如果要为两个数字之间的双精度数生成数组,则将有无限多个值。

为了正确执行操作,我建议您编写自己的扩展Number的类,为简单起见,该类的构造函数可以使用布尔值来表示它是double还是int。

您已经在if语句中初始化了minmax变量。 if语句的范围之外,您无法访问在其中初始化的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM