我有一个家庭作业,我需要使用一个循环编写程序,该循环从用户获取10个整数值并输出所有输入值的最小值。
这就是我所拥有的:
import java.util.Scanner;
public class Num52
{
public static void main (String [] args )
{
int value;
int minValue;
Scanner scan = new Scanner(System.in);
for( int i = 0; i < 10; i++ )
{
System.out.print( "Enter a number as an integer > " );
value = scan.nextInt( );
if( value < minValue )
minValue = value;
}
System.out.println( "The minimum number is " + minValue );
}
}
答案 0 :(得分:2)
您忘记初始化minValue。
在你的for循环中尝试这个
if (i == 0)
minValue = value;
或者您可以在此之前初始化for循环
minValue = Interger.MAX_VALUE; //This is more efficient code.
答案 1 :(得分:0)
您必须初始化minValue
,最好是初始化Integer.MAX_VALUE
。
答案 2 :(得分:0)
您必须为minValue
提供初始值。我建议Integer.MAX_VALUE
。此外,您可以使用Math.min(int, int)
之类的
public static void main(String[] args) {
int minValue = Integer.MAX_VALUE;
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.print("Enter a number as an integer > ");
System.out.flush();
minValue = Math.min(scan.nextInt(), minValue);
}
System.out.println("The minimum number is " + minValue);
}
答案 3 :(得分:0)
您需要将minValue
初始化为某个用户无法输入的最高值。为了更好的安全性,您应该初始化为Integer.MAX_VALUE
。
答案 4 :(得分:0)
你想从minValaue的正确值开始。我们应该将它设置为MAX_VALUE
public static void main (String [] args )
{
int value;
int minValue=Interger.MAX_VALUE;
Scanner scan = new Scanner(System.in);
for( int i = 0; i < 10; i++ )
{
System.out.print( "Enter a number as an integer > " );
value = scan.nextInt( );
if( value < minValue ) {
minValue = value;
}
}
System.out.println( "The minimum number is " + minValue );
}
答案 5 :(得分:0)
if( value < minValue )
你的minValue是未初始化的,因为它是本地的。你正在比较价值与没有价值。如果要获取int变量的默认值(0),请将其设为全局变量。否则,给它你自己的默认值,也许是其他答案建议的Integer.MAX_VALUE。
答案 6 :(得分:0)
您忘记使用起始编号初始化minValue
变量。最好的办法是用Integer.MAX_VALUE
初始化它,如下所示:
int minValue = Integer.MAX_VALUE;
另外,你应该稍微改变你的整数,如:
value = Integer.parseInt(scan.nextLine());