-1

我需要编写一个程序,让用户输入导师姓名列表。最多只能聘请 10 名同伴导师。然后,程序将根据按姓氏字母顺序排列的列表显示每个名称。这是我到目前为止所拥有的,但它不起作用,我不知道该怎么做。我需要它继续运行,直到我停止它并继续执行更多程序。

import javax.swing.JOptionPane;
import java.util.Arrays;


public class Report {

    public static void main(String[] args) {

          int numTutors = 10;
          String[] listNames = getTutorNames();
    }

    public static String[] getTutorNames() {

          String firstName;
        String lastName;
        String[] listNames = new String[10];

        for (int x = 0; x < listNames.length; x++) {
            firstName = JOptionPane.showInputDialog(null, "Enter Tutor's First Name: ");
            lastName = JOptionPane.showInputDialog(null, "Enter Tutor's Last Name: ");

            if (firstName.equals("")) &&  lastName.equals("")) {
                break; // loop end
            }
            listNames[x] = lastName + ", " + firstName;
        }
        return listNames;
    }
}
4

2 回答 2

2

嗯,这是第一次。当我编辑代码时,IntelliJ 没有正确格式化代码,我很快就发现了这个错误列表。请记住 - 代码甚至不会编译,更不用说运行,直到这些被修复。

  • int numTutors不知从何而来。如果要定义它,请在方法调用之外执行此操作并将其设置为适当的值。

    public static void main(String[] args) {
        int numTutors = 10;
        String[] listNames = getTutorNames(numTutors);
    }
    
  • 这些声明无效:

    String = firstName;
    String = lastName;
    

    String您需要介于和之间的某种变量名=

    您也没有与您传递的合同相匹配getTutorNames- 您传递的内容或您接受的内容必须更改。我想是后者。

  • 你不能==用来比较String。你必须使用.equals(). 这导致我...

  • 你的休息在你的循环之外。将其移动到循环内。

    for (int x = 0; x < listNames.length; x++) {
        firstName = JOptionPane.showInputDialog(null, "Enter Tutor's First Name: ");
        lastName = JOptionPane.showInputDialog(null, "Enter Tutor's Last Name: ");
        if (firstName.equals(" "))&&lastName.equals(" ")){
            break; // loop end
        }
    }
    

    ..导致我...

  • 您不会将值放在循环中的任何地方!你只是运行相同的代码十次!将它们放入阵列中。

    // after you check to see if the firstName and lastName are blank
    listNames[x] = firstName + lastName; // I don't know what you want to do with them from here.
    
  • 没有.add()数组。以上是如何将元素输入到数组中。

  • return完全在你的方法块之外。将其移至您的方法中。


现在,这些是我能找到的问题。首先处理编译问题,然后可能会讨论代码逻辑中的错误。如果可以的话,找个安静的时间,确保你理解变量声明和String比较。我强烈推荐Java wiki tag中的阅读材料。

于 2013-04-05T02:33:04.977 回答
0

很抱歉为这么小的事情做出回答,但你的

If (firstName.equals("")) && lastName.equals("")) { 

应该替换为

If ((firstName.equals("")) && lastName.equals(""))) { 
于 2013-04-05T06:40:45.463 回答