嘿我试图计算用户输入的最小值和最大值,同时忽略循环终止值,即-1。我知道除了在计算输入的最小值时如何忽略-1之外的所有事情。 这是我到目前为止所获得的代码:
int value = 0;
int max = value;
int min = max;
Scanner scan = new Scanner(System.in);
while (value != -1) {
System.out.print("Value: ");
value = scan.nextInt();
if (min > value) {
min = value; }
if (max < value) {
max = value; }
}
System.out.println("Min = " + min);
System.out.println("Min = " + min);
如何在忽略-1的情况下计算最小值?
感谢。
答案 0 :(得分:1)
您将循环转为永无止境的循环,并在检测到终止号时添加01_makemigrations:
command: "source /opt/python/run/venv/bin/activate && python ebagu/manage.py makemigrations --noinput"
leader_only: true
:
break
还修复:
Scanner scan = new Scanner(System.in);
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (;;) { // never-ending loop
System.out.print("Value: ");
if (! scan.hasNextInt()) {
System.out.println("** Invalid input **");
scan.nextLine(); // discard invalid input
continue; // loop back to prompt again
}
int value = scan.nextInt();
if (value == -1) // termination number
break;
if (value < min)
min = value;
else if (value > max)
max = value;
}
System.out.println("Min = " + min);
System.out.println("Max = " + max);
和min
的初始化(否则max
可能始终为min
)0
输入(因此程序在输入错误时不会因异常而死)Scanner
(打印max
两次)答案 1 :(得分:0)
在以if (value == -1) break;
开头的行前面添加if (min > value)
。一旦读取了终端(-1)字符,这会导致循环中断。
为清楚起见,您可以将循环条件更改为while(true)
。对于这种情况,这是一种非常常见的习语。