我正在尝试创建一个接受两个数字的程序,并输出一个大于另一个数字的最小数字(例如,给定4687和5,程序应该输出6)。
我遇到的问题是,当我编译程序时,即使我没有错误,输入两个数字后,也没有显示输出。光标只是继续闪烁。这是代码:
import java.io.*;
import java.util.*;
public class Numbers {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int smallest = 10;
int num;
System.out.printf("Enter a value for n: \n");
int n = in.nextInt();
System.out.printf("Enter a value for num: \n");
num = in.nextInt();
int ch = System.in.read();
while (ch>n && ch<smallest) {
smallest=ch;
ch = System.in.read();
}
System.out.printf("Smallest number that is larger is %d", smallest);
}
}
答案 0 :(得分:1)
我运行你的程序很好。您遇到的可能只是程序正在等待您不希望进入的输入。
以下是程序的示例输出:
Enter a value for n:
100
Enter a value for num:
2
0 // <-- This value corresponds to your program prompting for int ch = System.in.read();
Smallest number that is larger is 10D
提示:您可能希望将为n输入的值转换为String
,然后在toCharrArray()
上使用String
方法,以便遍历每个字符,就像你在while
循环中所做的那样。
尝试类似:
for(char ch : Integer.toString(n).toCharArray()) {
// rest of your while loop logic
}