Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 ArraysOutOfBoundException_Java_Arrays_Indexoutofboundsexception - Fatal编程技术网

Java ArraysOutOfBoundException

Java ArraysOutOfBoundException,java,arrays,indexoutofboundsexception,Java,Arrays,Indexoutofboundsexception,我找不到这个方法的代码有什么问题。它应该生成一个1D双数组,包含随机数的元素,以及两个随机整数之间的随机值。我一直在设置ArrayIndexOutOfBoundException public class Array1DOperations { public static void main(String[] args) { int n=0; int min=0; int max=0; generate1D(n,min, max); } p

我找不到这个方法的代码有什么问题。它应该生成一个1D双数组,包含随机数的元素,以及两个随机整数之间的随机值。我一直在设置ArrayIndexOutOfBoundException

public class Array1DOperations {
    public static void main(String[] args) {
        int n=0; int min=0; int max=0;
        generate1D(n,min, max);
    }
    public static double[] generate1D(int n, int min, int max){
        n=(int)(Math.random()*10);
        int x=(int)(Math.random()*10);
        int y=(int)(Math.random()*10);
        min=0;
        max=0;
        if (x>y){
            x=max;
            y=min;
        } else if(y>x){
            y=max;
            x=min;
        } else if(x==y){
            x=min;
            y+=(int)(Math.random()*10);
        }
        double[] a=new double[n];
        for(int i=0; i<=n; i++){
            double random=Math.random()*(max-min)+min;
            a[i]=random;
        }
        return a;
    }
}
公共类数组1操作{
公共静态void main(字符串[]args){
int n=0;int min=0;int max=0;
发电机1d(n、最小值、最大值);
}
公共静态双[]生成1d(整数n、整数min、整数max){
n=(int)(Math.random()*10);
int x=(int)(Math.random()*10);
int y=(int)(Math.random()*10);
最小值=0;
max=0;
如果(x>y){
x=最大值;
y=最小值;
}如果(y>x),则为else{
y=最大值;
x=最小值;
}else如果(x==y){
x=最小值;
y+=(int)(数学随机()*10);
}
双精度[]a=新双精度[n];

for(int i=0;i
for(int i=0;我认为它已编译,但现在所有元素的值都是0.0。@Batoul你的
max
min
都是零,试着把它改成一个范围,比如
min=0
max=100
@Batoul:如果你阅读你的代码,你应该能看到
min
max
总是零。还有
x
>而
y
变量从未被使用过。你到底想做什么?@Matti@J即使我删除了min=0,max=0,它仍然会给出0。0@Batoul检查
generate1D
方法,将
min
max
再次设置为零。
for(int i=0; i<=n; i++){