Java最小查找器不工作
这里是我到目前为止的代码片段。我的问题是,最小值显示为Integer.MAX_值,而不是我想要的值。iSpeedMph和pressure都是一维整数数组Java最小查找器不工作,java,loops,if-statement,min,Java,Loops,If Statement,Min,这里是我到目前为止的代码片段。我的问题是,最小值显示为Integer.MAX_值,而不是我想要的值。iSpeedMph和pressure都是一维整数数组 //calculating mins Integer min = Integer.MAX_VALUE; int minSpeed = Integer.MAX_VALUE; int minPressure = Integer.MAX_VALUE; for(i = 0; i < iSpeedMph.le
//calculating mins
Integer min = Integer.MAX_VALUE;
int minSpeed = Integer.MAX_VALUE;
int minPressure = Integer.MAX_VALUE;
for(i = 0; i < iSpeedMph.length; i++)
{
if (min > iSpeedMph[i])
{
min = iSpeedMph[i];
minSpeed = iSpeedMph[i];
}
}
min = Integer.MAX_VALUE;
for(i = 0; i < pressure.length; i++)
{
if (min > pressure[i])
{
min = pressure[i];
minPressure = pressure[i];
}
}
...
System.out.printf("%7s%2s%-9s%4s%8s%5s%13.3s%5s%16.2s\n", "Minimum", " ", " ", " ", " ", " ", minPressure, " ", minSpeed);
//计算分钟数
整数最小值=整数最大值;
int minSpeed=Integer.MAX_值;
int minPressure=Integer.MAX_值;
对于(i=0;iiSpeedMph[i])
{
最小值=iSpeedMph[i];
分钟速度=每小时速度[i];
}
}
最小值=整数。最大值;
对于(i=0;i压力[i])
{
最小值=压力[i];
最小压力=压力[i];
}
}
...
系统输出打印F(“%7s%2s%-9s%4s%8s%5s%13.3s%5s%16.2s\n”、“最小”、“最小”、“最小压力”、“最小速度”);
当我打印出最后一行时,终端显示214表示压力,21表示速度,没有格式,这意味着它们都是整数.MAX\u值。您正在检查当前项是否大于当前最小值,即
整数.MAX\u值,但您要检查当前项目是否小于当前最小值,例如
if (iSpeedMph[i] < min)
if(iSpeedMph[i]
同样,对于其他最小值测定。您正在检查当前项是否大于当前最小值,即整数。最大值
,但您希望检查当前项是否小于当前最小值,例如
if (iSpeedMph[i] < min)
if(iSpeedMph[i]
同样,对于其他最小值测定。试验
if (iSpeedMph[i] > min)
始终返回false
。您必须反向比较
if (iSpeedMph[i] < min)
测试
if (iSpeedMph[i] > min)
始终返回false
。您必须反向比较
if (iSpeedMph[i] < min)
以下条件对于任何整数都不会为真,因为min
是integer.MAXVALUE
if (iSpeedMph[i] > min)
只需将其初始化为0,以检查您是否正在搜索数组中所有元素的最小值,或者使用第一个数组值指定最小值,并从第二个元素循环数组。以下条件对于任何整数都不会变为真,因为min
是整数。MAXVALUE
if (iSpeedMph[i] > min)
只需将其初始化为0,以检查您是否正在搜索数组中所有元素的最小值,或者,使用第一个数组值指定最小值,并从第二个元素循环数组。if(iSpeedMph[i]>min)
这如何为您提供新的最小值
另外,请使用已经为您编写的min
方法,例如if(iSpeedMph[i]>min)
这如何为您提供新的min值
另外,请使用已经为您编写的min
方法,例如,正如其他人指出的那样,您在if语句中的比较是错误的。但使用Java 8流在数组中查找最小值和最大值非常简单:
int minSpeed = Arrays.stream(iSpeedMph).min().get();
int minPressure = Arrays.stream(pressure).min().get();
正如其他人所指出的那样,if语句中的比较是错误的。但使用Java 8流在数组中查找最小值和最大值非常简单:
int minSpeed = Arrays.stream(iSpeedMph).min().get();
int minPressure = Arrays.stream(pressure).min().get();
像这样的简单错误是最烦人的,举手!像这样的简单错误是最烦人的,举手!