使用循环让用户输入10次整数然后得到最小值

时间:2014-11-12 04:48:39

标签: java loops minimum

我有一个家庭作业,我需要使用一个循环编写程序,该循环从用户获取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 );


  }
 }

7 个答案:

答案 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());