我如何在这个 Java 程序中获得我的逻辑以使我的循环工作?
How do I get my logic in this Java program to make my loop work?
我编写了这个 java 程序来查找用户输入的两个最小整数。我想我几乎就在那里,除了我的逻辑有一个问题。我不确定要设置什么值:
int min, min2;
到我的程序的其余部分可以工作的地方。我试过 -1 和 0,它最后会作为我最小的和第二小的。
public class TwoSmall
{
public static void main(String[] args)
{
int input;
System.out.println("Enter you numbers: ");
input = IO.readInt();
int min = 0;
int min2 = 0;
while (input >= 0)
{
if (input < min)
{
min2 = min;
min = input;
}
else if (input < min2)
{
min2 = input;
}
input = IO.readInt();
}
System.out.println("The lowest number was " + min
+ " and the second lowest is " + min2);
}
}
尝试将 min
和 min2
设置为 Integer.MAX_VALUE
。实际上这应该可以解决您的问题,因为您正在使用的整数数据类型是 int
。但理论上,将min
和min2
设置为第一个输入值才是正确的解决方案。
编辑:
事实上,我看到你单独输入了第一个值。因此正确的解决方案如下:
public class TwoSmall
{
public static void main(String[] args)
{
int input;
System.out.println("Enter you numbers: ");
input = IO.readInt();
int min = input;
int min2 = input;
while (input >= 0)
{
numInputsGreaterThan1 = true;
if (input < min)
{
min2 = min;
min = input;
}
else if (input < min2)
{
min2 = input;
}
input = IO.readInt();
}
System.out.println("The lowest number was " + min
+ " and the second lowest is " + min2);
}
}
注意,如果只输入一个整数,打印的min
和min2
的值是一样的。
我编写了这个 java 程序来查找用户输入的两个最小整数。我想我几乎就在那里,除了我的逻辑有一个问题。我不确定要设置什么值:
int min, min2;
到我的程序的其余部分可以工作的地方。我试过 -1 和 0,它最后会作为我最小的和第二小的。
public class TwoSmall
{
public static void main(String[] args)
{
int input;
System.out.println("Enter you numbers: ");
input = IO.readInt();
int min = 0;
int min2 = 0;
while (input >= 0)
{
if (input < min)
{
min2 = min;
min = input;
}
else if (input < min2)
{
min2 = input;
}
input = IO.readInt();
}
System.out.println("The lowest number was " + min
+ " and the second lowest is " + min2);
}
}
尝试将 min
和 min2
设置为 Integer.MAX_VALUE
。实际上这应该可以解决您的问题,因为您正在使用的整数数据类型是 int
。但理论上,将min
和min2
设置为第一个输入值才是正确的解决方案。
编辑: 事实上,我看到你单独输入了第一个值。因此正确的解决方案如下:
public class TwoSmall
{
public static void main(String[] args)
{
int input;
System.out.println("Enter you numbers: ");
input = IO.readInt();
int min = input;
int min2 = input;
while (input >= 0)
{
numInputsGreaterThan1 = true;
if (input < min)
{
min2 = min;
min = input;
}
else if (input < min2)
{
min2 = input;
}
input = IO.readInt();
}
System.out.println("The lowest number was " + min
+ " and the second lowest is " + min2);
}
}
注意,如果只输入一个整数,打印的min
和min2
的值是一样的。