Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 随机生成的数组无法正确打印小值_Java_Loops - Fatal编程技术网

Java 随机生成的数组无法正确打印小值

Java 随机生成的数组无法正确打印小值,java,loops,Java,Loops,我的代码不起作用,因为它总是将小值打印为0。 提前感谢你的帮助 public class Tests { public static void main(String [] args){ int [] num=new int[10]; Random random= new Random(); //1st time both big and small value will be at 0 int big=num[0];

我的代码不起作用,因为它总是将小值打印为0。 提前感谢你的帮助

public class Tests {

    public static void main(String [] args){
        int [] num=new int[10];
        Random random= new Random();
        //1st time both big and small value will be at 0
        int big=num[0];
        int small=num[0];

        for(int i=0;i<num.length;i++){

            num[i]=random.nextInt(10);
            System.out.print(num[i] +" ");

            if(num[i]>big){
                big=num[i];             
            }   
            if(num[i]<small){
                small=num[i];
            }
        }
        System.out.println();
        System.out.println("Big " + big);
        System.out.println("Small " + small);
    }
}
公共类测试{
公共静态void main(字符串[]args){
int[]num=新的int[10];
随机=新随机();
//第一次大小值均为0
int big=num[0];
int small=num[0];
对于(int i=0;ibig){
big=num[i];
}   

如果(num[i]这是因为
small
为0,每个随机值将在0和10之间生成,因此0是最小的

要修复它,请更改为

int small = Integer.MAX_VALUE;

这是因为
small
为0,每个随机值都将在0和10之间生成,因此0是最小的

要修复它,请更改为

int small = Integer.MAX_VALUE;

声明
int small
为:

int small = Integer.MAX_VALUE;
现在它将起作用

注意:而且最好将
intbig
声明为

int big = Integer.MIN_VALUE;

声明
int small
为:

int small = Integer.MAX_VALUE;
现在它将起作用

注意:而且最好将
intbig
声明为

int big = Integer.MIN_VALUE;

当您启动int数组时,
int[]num=new int[10];
0(0)
分配给所有索引

因此,当您让
intsmall=num[0];
它包含0(0)

因此,无论值是什么,下面的块总是将
small
比较为零(0)。因此,不要更改
small
变量

if(num[i]<small){
   small=num[i];
}

if(num[i]当您启动int数组时
int[]num=new int[10];
它将
零(0)
分配给所有索引

因此,当您让
intsmall=num[0];
它包含0(0)

因此,无论值是什么,下面的块总是将
small
比较为零(0)。因此,不要更改
small
变量

if(num[i]<small){
   small=num[i];
}

if(num[i]在另一个循环中初始化数组。当初始化int数组时,它们都是0

public class Test {

public static void main(String[] args) {
        int[] num = new int[10];
        Random random = new Random();
        for (int i = 0; i < num.length - 1; i++) {
            num[i] = random.nextInt(10);
        }
        //1st time both big and small value will be at 0
        int big = num[0];
        int small = num[0];

        for (int i = 0; i < num.length - 1; i++) {
            System.out.print(num[i] + " ");

            if (num[i] > big) {
                big = num[i];
            }
            if (num[i] < small) {
                small = num[i];
            }
        }
        System.out.println();
        System.out.println("Big " + big);
        System.out.println("Small " + small);
    }
}
公共类测试{
公共静态void main(字符串[]args){
int[]num=新的int[10];
随机=新随机();
for(int i=0;ibig){
big=num[i];
}
if(num[i]
在另一个循环中初始化数组。当初始化int数组时,所有数组都是0

public class Test {

public static void main(String[] args) {
        int[] num = new int[10];
        Random random = new Random();
        for (int i = 0; i < num.length - 1; i++) {
            num[i] = random.nextInt(10);
        }
        //1st time both big and small value will be at 0
        int big = num[0];
        int small = num[0];

        for (int i = 0; i < num.length - 1; i++) {
            System.out.print(num[i] + " ");

            if (num[i] > big) {
                big = num[i];
            }
            if (num[i] < small) {
                small = num[i];
            }
        }
        System.out.println();
        System.out.println("Big " + big);
        System.out.println("Small " + small);
    }
}
公共类测试{
公共静态void main(字符串[]args){
int[]num=新的int[10];
随机=新随机();
for(int i=0;ibig){
big=num[i];
}
if(num[i]
当您说
int[]num=new int[10];
时,
num
数组将用0初始化所有10个位置,即num[0]=0,num[1]=0

正如其他人所建议的,使用
int small=Integer.MAX\u VALUE;


永远记住,当你初始化一个存储最大值的变量时,初始化一个像0这样的小值,对于一个小变量,用尽可能大的数字初始化它。

当你说
int[]num=new int[10];
时,
num
数组将在所有10个位置初始化为0,即num[0]=0,num[1]=0

正如其他人所建议的,使用
int small=Integer.MAX\u VALUE;


请始终记住,当您将某个值初始化为存储最大值的变量时,请初始化一个小值(如0),对于小变量,请使用可能的最大值初始化它。

因为0小于1到9,因为0小于1到9