我很困惑为什么这不起作用,会感激一些帮助:
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以外的东西时,循环没有因某种原因而结束。
答案 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
。