我需要编写一个程序,让用户输入导师姓名列表。最多只能雇用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;
}
}
答案 0 :(得分: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
比较。我强烈推荐the Java wiki tag中的阅读材料。
答案 1 :(得分:0)
很抱歉为这个小而且你的
做出了回答If (firstName.equals("")) && lastName.equals("")) {
应替换为
If ((firstName.equals("")) && lastName.equals(""))) {