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循环语句
答案 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程序?”