首页 > 解决方案 > 如何使用 JOptionPane 和数组列出用户的多个输入?

问题描述

我必须改正我所有的 IT 级作业,但其中一项我很吃力。给你一个简短的细分;我基本上必须使用JOptionPane.showInputDialog才能获得他们最喜欢的 4 位音乐艺术家的用户输入。singers[]此外,我必须将这些输入保存在一个名为;的数组中。我必须使用 for 循环询问使用 4 位艺术家的姓名JOptionPane.showInputDialog,然后将该输入保存在提到的数组中,并输出 4 位艺术家,但是如果其中一位艺术家名为“heino”,则程序必须立即关闭System.exit(0).

我把大部分内容都记下来了,但是我很难为 4 个艺术家的名字获取输入和输出。

import javax.swing.*;

public class Main {


    public static void main(String[] args) {

        String[] singer = new String[4];

        for (int i = 0; i < singer.length; i++) {
            singer[i] = JOptionPane.showInputDialog("How is your favourite artist called? :");
            if(singer[i].equals("Heino")){
                System.exit(0);
            }

            else{
                singer[i] = JOptionPane.showInputDialog("Do you have any other favourite artists? : ");
            }

        for (String bestesinger : singer){
            JOptionPane.showMessageDialog(null, "The name of your favourite artists are: " + singer[0] + singer[1] + singer[2] + singer[3]);
        }   
        }
    }

}

标签: javaswing

解决方案


我已经更改了您的程序,如下所示。现在它可以工作了。要点是:

您有嵌套for循环,但您应该使用 2 个单独的for循环。

您不需要第一个循环else中的块。for

第二个showMessageDialog()调用被移到第二个for循环之外。在第二个for循环中,歌手姓名被收集到output变量中。

import javax.swing.*;

public class Singers {

  public static void main(String[] args) {

    String[] singer = new String[4];

    for (int i = 0; i < singer.length; i++) {
      singer[i] = JOptionPane.showInputDialog("How is your favourite artist called? :");
      if (singer[i].equals("Heino")) {
        System.exit(0);
      }
    }

    String output = "";
    for (String bestesinger : singer){
      output = output + bestesinger + " ";
    }
    JOptionPane.showMessageDialog(null, "The name of your favourite artists are: " + output);
  }
}

推荐阅读