Java 从用户输入中查找最小数目

Java 从用户输入中查找最小数目,java,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");

我很困惑为什么这不起作用,希望能得到一些帮助:

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);

    }
}
import java.util.Scanner;
公共班机
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
int min=整数最大值;
System.out.println(“输入一个数字”);
int input=in.nextInt();
while(在.hasNextInt()中){
如果(输入<分钟){
最小值=输入;
}
}
in.close();
系统输出打印项次(最小值);
}
}
当我输入除int以外的其他值时,循环不会因为某种原因而结束


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

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

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

此外,我认为您忘记在
while
循环中调用
in.nextInt()

今天早些时候这里的确切问题是:感谢您的帮助,似乎包含了in.next();在循环内部修复了它修复了它。。。