Java 随机生成的数组无法正确打印小值
我的代码不起作用,因为它总是将小值打印为0。 提前感谢你的帮助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];
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