首页 > 解决方案 > 随机生成的数组无法正确打印小值

问题描述

我的代码不起作用,因为它总是将小值打印为 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);
    }
}

请参阅下面的问题:良好的结果:

5 1 1 3 8 3 5 1 1 0 大 8 小 0

坏结果:6 8 8 1 7 5 2 6 8 4 大 8 小 0

标签: javaloops

解决方案


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

所以,当你让它int small=num[0];包含零(0)

因此,无论值是什么,后面的块总是比较small为零(0)。所以,不要改变small变量!

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

分配然后一切都会奏效int small=Integer.MAX_VALUE;int big=Integer.MIN_VALUE;


推荐阅读