不明确的java错误

时间:2013-01-17 20:12:08

标签: java debugging

public static int intersectionSizeMergeAndSort(studentList L1, studentList L2) {

  int intersectionSize = 0;
  int[] C = new int[L1.studentID.length+L2.studentID.length];
  for(int i = 0; i<L1.studentID.length; i++){
  C[i] = L1.studentID[i];
  }
  for(int i = 0; i<L2.studentID.length; i++){
  C[i+L1.studentID.length] = L2.studentID[i];
  }
  Arrays.sort(C);
  int pointer = 0;
  while(pointer<((L1.studentID.length)+(L2.studentId.length))){
    if(C[pointer] = C[pointer+1]){
    intersectionSize = intersectionSize + 1;
    pointer = pointer + 2;
    }
    else {
      pointer == pointer + 1;
  }
return intersectionSize;
  }
}

我有这个算法我正在写作作业。每次编译我的代码时,都会收到一个我无法理解的错误以便进行调试。 错误如下:

Error: /Users/nah/Desktop/studentList.java:137: operator < cannot be applied to int,<nulltype>

错误指向while循环语句

4 个答案:

答案 0 :(得分:4)

不确定这是否与同一错误直接相关,而是您的行

 while(pointer<((L1.studentID.length)+(L2.studentId.length))){

错误拼写了第二个“studentId”并且应该是“studentID”

 while(pointer<((L1.studentID.length)+(L2.studentID.length))){

当然,除非您碰巧为您的studentID类定义了两个数组,每个数组都有不同的情况。

我也同意与“==”比较运算符相关的其他答案,但是你告诉我们错误与while语句有关

答案 1 :(得分:1)

我能看到的唯一错误是:

if(C[pointer] = C[pointer+1]){

这应该是:

if(C[pointer] == C[pointer+1]){

答案 2 :(得分:0)

以下内容在Java中不起作用:

if (C[pointer] = C[pointer+1])

这是赋值,它的类型是int,它不能在if语句中使用

答案 3 :(得分:0)

while循环?好。通过简化表达式来完成调试。

我们唯一看到&lt;是循环条件。而不是

  int pointer = 0;
  while(pointer<((L1.studentID.length)+(L2.studentId.length))){

  int pointer = 0;
  int len = ((L1.studentID.length)+(L2.studentId.length));
  while(pointer< len){

如果再次出现错误,请简化错误提升表达式。

我认为这个问题是错误的。只有因为您不尝试本地化它才是 * * ambigous。仅在“&lt;”时发布问题不适用于两个整数。当前的问题标题必须是:“你如何调试Java程序?”