计算最小输入,直到输入0

  • 本文关键字:计算 java
  • 更新时间 :
  • 英文 :


我的赋值要求我们读入未指定数字的整数,直到输入数字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)

有几种方法可以做到这一点。

  1. 用户第一次输入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);
  1. 在第二个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;
}

最新更新