从用户输入中查找最小数量

时间:2015-11-20 18:03:57

标签: java

我很困惑为什么这不起作用,会感激一些帮助:

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int min = Integer.MAX_VALUE;
        System.out.println("Enter a number");
        int input = in.nextInt();
        while(in.hasNextInt()){
                if(input < min){
                        min=input;
                }
        }
        in.close();
        System.out.println(min);

    }
}

当我输入int以外的东西时,循环没有因某种原因而结束。

Console screenshot

2 个答案:

答案 0 :(得分:0)

因为它正在等待下一个整数,并将继续阅读。一种解决方案是使用getline()并将返回的字符串解析为整数。如果转换失败,您将不得不处理它。如果返回0长度的字符串,则退出。

答案 1 :(得分:0)

解决方案是采用.next()并使用try-catch解析int

while (in.hasNext() {
    String input = in.next();
    try {
         int printInt = Integer.parseInt(input);
         System.out.println(printInt);
    } catch () {}
}

此外,我认为您忘记在in.nextInt()循环内拨打while