今日遇到一个未见过的问题Unreachable Code,查了一下据说出现原因是循环体中有问题让后续代码无法执行,正好我也是循环体出现这个问题,但在后续代码检查很久都没找出哪里有问题。
今天一早重新来看发现了问题所在:是循环前面的if()分支语句在if结束后忘了删除开始的return 0;导致后续的for循环无法执行。
于是得到这类问题的解决思路就是——查看该问题标红代码整体的前面代码
package com.llewyn.sms.impl;
import java.util.Arrays;
import com.llewyn.pojo.Student;
import com.llewyn.sms.ISMS;
import com.llewyn.util.StuInfoUtils;
public class SMSImpl implements ISMS{
//声明容器
private Student[] stus;
//默认初始化容量 - 静态确保共享
private static final int DEFAULT_INIT_CAPACITY = 3;
//声明数组的元素个数
private int size;
//无参构造 - 定义默认数组长度
public SMSImpl() {
stus = new Student[DEFAULT_INIT_CAPACITY];
}
@Override
public int delete(String classId, String id) {
int queryLabel = queryForIndex(classId,id);
if(queryLabel == -1){
return -2;
}
//此处多了一个return 0;
for(int i =queryLabel ; i<size-1; i++){
stus[i] = stus[i+1];
}
size--;
return 1;
}