我的赋值要求我们读入未指定数字的整数,直到输入数字0,退出程序并打印结果。
System.out.println("Write a list of integers and type 0 when you are finished");
int min = Integer.MAX_VALUE;
int num = 0
Scanner in = new Scanner(System.in);
do {
//user input
num = in.nextInt();
// check input for minimum integer
if (num < min)
min = num;
} while (num != 0);
System.out.println("The minimum integer is " + min);
如果我输入[-2,10,15,-1,0]
|输出将是[-2]
如果我输入[6,10,30,0]
|输出将是[0]
,然而,我想要的输出是[6]
我的问题是,我需要它能够读取负数,而不是读取0作为最低值。
你可以试试:
if (num < min && num != 0)
有几种方法可以做到这一点。
- 用户第一次输入0时中断:
do {
//user input
num = in.nextInt();
// check input for minimum integer
if(num == 0)
{
break; // Goes directly out of the loop
}
if (num < min)
min = num;
}while(num != 0);
- 在第二个
if
中插入另一个条件,就像@Vic建议的那样:
do {
//user input
num = in.nextInt();
// check input for minimum integer
if(num == 0)
{
break; // Goes directly out of the loop
}
if (num < min && num != 0)
min = num;
}while(num != 0);
你能做的是在while循环中直接获取输入,这将使每次在进入循环之前获取输入并立即检查它是否为0。
import java.util.*;
public class Main
{
public static void main(String[] args) {
System.out.println("Write a list of integers and type 0 when you are finished");
int min = Integer.MAX_VALUE;
int num;
Scanner in = new Scanner(System.in);
while ((num = in.nextInt()) != 0) {
//user input
//num = in.nextInt();
// check input for minimum integer
if (num < min)
min = num;
}
System.out.println("The minimum integer is " + min);
}
}
你可以这么做,
int min = Integer.MAX_VALUE;
int num = 0;
Scanner in = new Scanner(System.in);
while ((num = in.nextInt()) != 0) {
if (num < min) min = num;
}