Java编程初学者While-Loop

时间:2015-11-13 19:05:17

标签: java arrays while-loop

我正在为一组动物写一个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."); 

}

3 个答案:

答案 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持有大多数数字的动物数。最后,您只需显示带有这些数字和名称的对话框。