为什么最后两条指令是不可达代码?
Why are the last two instructions unreachable code?
Eclipse 将它们识别为无法访问的代码,这显然是永远不会被读取的代码,因为没有路径可以访问它,但我不明白为什么。说明在 main() 方法中
//leemos
FileInputStream fis;
ObjectInputStream ois;
Alumno alumnoLeido = null;
String cadena ="";
JTextArea area = new JTextArea(6,1);
while(true){
try {
fis = new FileInputStream("alumnos.txt");
ois = new ObjectInputStream(fis);
alumnoLeido = (Alumno) ois.readObject();
ois.close();
cadena = "Alumno " + alumnoLeido.getNombre() + " " + alumnoLeido.getApellido() + " vive en "
+ alumnoLeido.getDireccion() + " y tiene una beca de " + alumnoLeido.getBeca() + " euros \r\n";
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
area.append(cadena);
JOptionPane.showMessageDialog(null, area, "Alumnos",1);
它们无法访问,因为您的 while
循环永远不会终止。
while(true)
是一个无限循环。如果没有 break
,循环将永远不会终止并允许执行以下代码。所以,你永远不会到达剩余的语句。
Eclipse 将它们识别为无法访问的代码,这显然是永远不会被读取的代码,因为没有路径可以访问它,但我不明白为什么。说明在 main() 方法中
//leemos
FileInputStream fis;
ObjectInputStream ois;
Alumno alumnoLeido = null;
String cadena ="";
JTextArea area = new JTextArea(6,1);
while(true){
try {
fis = new FileInputStream("alumnos.txt");
ois = new ObjectInputStream(fis);
alumnoLeido = (Alumno) ois.readObject();
ois.close();
cadena = "Alumno " + alumnoLeido.getNombre() + " " + alumnoLeido.getApellido() + " vive en "
+ alumnoLeido.getDireccion() + " y tiene una beca de " + alumnoLeido.getBeca() + " euros \r\n";
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
area.append(cadena);
JOptionPane.showMessageDialog(null, area, "Alumnos",1);
它们无法访问,因为您的 while
循环永远不会终止。
while(true)
是一个无限循环。如果没有 break
,循环将永远不会终止并允许执行以下代码。所以,你永远不会到达剩余的语句。