我正在为一组动物写一个while-Loop程序,这对我来说并不熟悉。用户可以输入他们想要的数量,但在输入“exterminate”时终止它。
以下是我需要为该计划做的事情: 编写一个程序,使用while循环重复询问用户 命名动物,然后询问有多少人留在野外。它应该在输入特殊代码EXTERMINATE时停止,并命名最不危险的动物。
为动物命名?科莫多巨蜥 野外还剩下多少人? 5000 给动物命名?海牛 野外还剩下多少人? 8000 给动物命名?鸮鹦鹉 野外还剩下多少人? 91 给动物命名?佛罗里达豹 野外还剩下多少人? 100 给动物命名?灭掉
最不濒危的动物是海牛。 野外还剩下8000只。
我有两个问题。首先,我无法获得存储所有动物名称的程序以获得输出的弹性危险物品。所以我在想是否应该使用数组来跟踪它们?
其次,当我输入exterminate时,程序在用户插入exterminate后完成while循环而不会中断。
请不要让它变得复杂,因为我是java的新手,不知道多维数组或do-while循环等。
这是我到目前为止所写的内容;
public static void animals()
{
String animalname = "";
String animalsleft = "";
int noanimals = 0;
while(!animalname.equals("exterminate"))
{
animalname = JOptionPane.showInputDialog("Name an animal");
animalsleft = JOptionPane.showInputDialog("How many are left in the wild");
noanimals = Integer.parseInt(animalsleft);
System.out.println(animalname + " " + animalsleft);
}
JOptionPane.showMessageDialog(null, "The least endangered animal is the " + animalname + ".");
JOptionPane.showMessageDialog(null, "There are " + animalsleft + " left in the wild.");
}
答案 0 :(得分:0)
每次循环时都会覆盖String值。
您要做的是使用字符串列表。
例如
ArrayList<String> animals = new ArrayList<String>();
while(!animalname.equals("exterminate"))
{
animalname = JOptionPane.showInputDialog("Name an animal");
animals.add(animalname);
...
}
答案 1 :(得分:0)
如果你想使用一个数组,你必须首先通过你将采取的循环重复次数。例如,如果您要循环100次,请将数组初始化为
String[] animalNames = new String[100];
然后在你的while循环中
int i = 0;
while(i < animalNames.length) {
animalNames[i] = JOptionPane.showInputDialog("Name an animal");
i = i + 1;
}
这样你的数组仍将拥有所有的动物名称。
答案 2 :(得分:-1)
问题很简单。有多种方法可以解决这个问题。 但首先,您需要重新检查您的问题(如何询问)。
但你会及时了解到。现在的解决方案:显然你可以使用数组,但更好的方法是使用列表。但是这一切都是不必要的,你可以轻松避免使用所有内存。只需使用临时缓冲液,每次检查新动物是否濒临灭绝。只需在代码中添加以下行。
public static void animals() {
String animalname = "";
String animalsleft = "";
int noanimals = 0;
String prevanimalname = "";
String prevanimalsleft = "";
int prevnoanimals = 0;
while(!animalname.equals("exterminate")) {
animalname = JOptionPane.showInputDialog("Name an animal");
animalsleft = JOptionPane.showInputDialog("How many are left in the wild");
noanimals = Integer.parseInt(animalsleft); System.out.println(animalname + " " + animalsleft);
if (noanimals > prevnoanimals) {
swap(prevnoanimals, noanimals);
swap(prevanimalname, animalname);
}
}
JOptionPane.showMessageDialog(null, "The least endangered animal is the " + prevanimalname + ".");
JOptionPane.showMessageDialog(null, "There are " + prevanimalsleft + " left in the wild.");
}
您可以谷歌交换两个变量,并在同一个if语句中对动物的名称应用相同的交换。
而且MostAnimalCount持有大多数数字的动物数。最后,您只需显示带有这些数字和名称的对话框。