为什么一直返回-1啊?

img

String的比较不能用==,而是equals, 还有可以优化:在if里面可以直接return, 不用把所有元素都遍历一遍,没意义,浪费性能

断点跟啊,看代码到底走进什么地方去了啊,电脑在你手里,编译器在你手里,代码也在你手里,你自己最应该知道到底怎么回事
无非就那么几种可能:
1.classlist的长度是0,所以循环没有执行
2.你传入的sid在classlist里面没有匹配的项,所有比较全部返回false
3.classlist[i].getGrade()的返回值本身就是-1
到底是哪种情况,断点跟一下不就清楚了

1.当数class list中没有元素,长度为0是for循环就不执行到,所以返回原来的值-1
2.要么就是classlist中的所以元素的grade的值都是-1
3.优化点:for循环里if语句里给grade赋值完成就可以break跳出循环了

比较明显你在代码里面把grade 值逐行打印出来看看。

在给一点,sid是string类,string类的值比较最好用equals函数。

sid是String,如果是比较内容,应该用equals