[英]Why do I get an “unreachable code” and “variable not initialized” compilation error?
[英]Why my boolean is unreachable code and compilation error?
我正在為我的任務做一個休假管理系統。 這是我要求用戶保存注冊的部分。 首先,我使用 do...while(true) 循環來詢問他們的信息,例如姓名、ID、部門等。我首先在 do...while(true) 循環之前添加一個 boolean regErr = false 並且它有沒問題。
然后我繼續這部分並添加一個 boolean saveReg。 但我不知道為什么它會顯示錯誤並顯示其無法訪問的代碼。 如果我在 do...while 循環中添加 boolean saveReg 也不起作用。 我真的需要你的幫助來找出問題所在。 提前謝謝你,祝你有美好的一天!
// do...while loop for their name, ID, etc. where it is no problem //我只是寫在這里,以防你想看看
boolean regErr = false;
do{
regErr = false;
System.out.print("Name: ");
:
:
}while(true)
//這是有問題的部分
boolean saveReg; //the boolean that is unreachable code
do{
String save = "";
System.out.print("Save account?(Y/N): ");
save = sc.next();
if(save.equals("Y") || save.equals("y")){
saveReg = true;
break;
}
else if(save.equals("N") || save.equals("n")){
saveReg = false;
break;
}
else{
System.out.println("Invalid choice.");
}
}while(true);
if(saveReg){
try(PrintWriter regWriter = new PrintWriter("./empData/" + ".txt", "UTF-8")){
regWriter.println(name);
regWriter.println(empID);
regWriter.println(password);
regWriter.println(department);
regWriter.println(position);
regWriter.println(dateJoined);
regWriter.println(userRole);
regWriter.println(superiorID);
System.out.println("Account saved.");
regWriter.close();
try(PrintWriter updateRegNo = new PrintWriter("./RegNo.txt", "UTF-8")){
updateRegNo.println(++regNo);
updateRegNo.close();
}catch(IOException err){
err.printStackTrace();
}
}catch(IOException err){
err.printStackTrace();
}
}
else{
System.out.println("Registration fail.");
}
那是因為你的第一個代碼, while(true)
會讓它運行無限次,所以下面的代碼是無法訪問的。 使用下面的代碼 -
boolean regErr = false;
do{
regErr = false;
System.out.print("Name: ");
:
:
}while(regErr )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.