运算符 < 对于参数类型是未定义的

The operator < is undefined for the argument type

不讨厌我的 Java 编程老师,但我有一些编程经验,对于第一个项目,我想让老师惊叹。无论如何,我是 Java 的新手,但对 C 有一定的了解。只是为了测试 Java 中的数组系统,我设计了这个程序。我想让它做的是询问我数组的大小。我需要数组的大小,因为稍后我将用员工的姓名填充它。但是我一直收到这个错误...

package withholding_calculator;
import java.util.Scanner;

class withholding_calculator {
public static void main(String args[]) {
    //declaring variables
    Scanner size = new Scanner(System.in);
    String[] employeeNames = new String[size.nextInt()];

    for( int i = 0; i < size; i++ ) {
        System.out.println( employeeNames[i] );
        }
    }
}

对此有两点回应。

首先,您的 for 循环可以直接使用数组大小​​ (employeeName.length) 而不是引用扫描仪对象(错误是由于您将扫描仪与 int 进行比较引起的)。

其次,'c' 样式数组在 Java 中的使用比在 C 中少得多。通常 Java 程序员会将其编码为:

List<String> employeeNames = new ArrayList<>();
// fill the list using employeeNames.add
for (String name: employeeNames)
    System.out.println(name);

在Java8中,最后2行可以大大简化为:

employeeNames.forEach(System.out::println);

尽管如此,使用标准数组仍然是完全合理的,如果您比较数组的长度而不是扫描仪,您的代码应该可以正常工作。