我是uni大学的新生,我们必须做一个作业,在其中必须找到整数行中的第二个最小的数字。现在我想我明白了,但我无法打印结果。有人能弄清楚为什么吗?
package SecondSmallest;
import java.util.Scanner;
import java.io.PrintStream;
public class SecondSmallest {
public static void secondSmallestLoop() {
Scanner in = new Scanner(System.in);
PrintStream out = new PrintStream(System.out);
out.printf("Please enter a series of at least 2 integers: ");
int smallest = in.nextInt();
int secondSmallest = in.nextInt();
while (in.hasNextInt()) {
int next = in.nextInt();
if (next < smallest) {
secondSmallest = smallest;
smallest = next;
}
else if (next < secondSmallest) {
secondSmallest = next;
}
}
out.print("The second smallest number is: " + secondSmallest);
}
public static void main(String[] args) {
SecondSmallest.secondSmallestLoop();
}
}
答案 0 :(得分:0)
我认为,最好有一个条件来停止扫描仪。因此,我建议使用do-while代替。您还应该使用System.out.println,因为可以在控制台中进行打印了。您不必每次都实例化一个PrintStream。顺便说一句,您的代码正在运行,但是考虑我们对您的想法会很有趣。
答案 1 :(得分:0)
您的问题未定义为while循环的停止点。
in.hasNextInt()
的意思是:如果输入整数,它将继续。要停止它,您可以输入非整数的字符。
希望对您有所帮助