ฉันกำลังพยายามเขียนโค้ด (ใน Visual Studio 2012 โดยใช้ c#) ที่จะอนุญาตให้ผู้ใช้เลือกบัญชีโดยใช้ 1,2,3 หรือ 4 ฉันกำลังใช้ do- While loop ดังนั้นฉันจึงสามารถใช้ 0 เพื่อออก (break? ) หรือรันลูปอีกครั้งจนกว่าจะเลือกตัวเลือกที่ถูกต้อง
ปัญหาคือ Visual Studio บอกฉันว่ารหัส validAccount = true;
ไม่สามารถเข้าถึงได้ และจะไม่ยอมให้ฉันทดสอบ เนื่องจากวิธีนี้ควรส่งคืนค่าด้วย ฉันมีข้อผิดพลาด "เส้นทางโค้ดไม่ทั้งหมดส่งคืนค่า" และฉันเริ่มสับสนจริงๆ นี่คือรหัสของฉัน:
static int chooseAccount() {
bool validAccount = false;
do {
Console.Clear();
Console.WriteLine("Select an Account: \r\n 1: Savings \r\n 2: Debit \r\n 3: Credit \r\n 4: Investment");
int inputNumber = int.Parse(Console.ReadLine()); //by declaring int inputNumber here we save having an extra line.
if ((inputNumber >= 1) && (inputNumber <= 4)) {
return inputNumber;
validAccount = true;
}
else if (inputNumber == 0) {
break;
}
else {
Console.WriteLine("Error: please choose an account using 1, 2, 3, 4 or 0 to exit");
}
} while (!validAccount);
}//end chooseAccount
บางทีฉันอาจจะจ้องมองสิ่งนี้มานานเกินไปและไม่สามารถมองเห็นความผิดพลาดง่ายๆ ที่ฉันทำลงไปได้ ฉันยินดีรับมุมมองหรือทิศทางใหม่ๆ ที่จะหาวิธีแก้ไขได้ หากปัญหาประเภทนี้ได้รับการแก้ไขแล้ว (มันค่อนข้างยากที่จะ google สำหรับบางอย่างเช่น "รหัสที่ไม่สามารถเข้าถึงได้" เมื่อรหัสต้องเฉพาะเจาะจงมาก...)
return inputNumber;
จะไม่ถูกดำเนินการ คุณไม่จำเป็นต้องตั้งค่า validAccount เนื่องจากค่าของมันจะหายไปจากสแต็กเมื่อคุณกลับมาจากฟังก์ชัน - person dcaswell   schedule 06.09.2013