Я пытаюсь написать код (в Visual Studio 2012 с использованием С#), который позволит пользователю выбрать учетную запись, используя 1,2,3 или 4. Я использую цикл do-while, поэтому я могу использовать 0 для выхода (перерыв? ) или снова запустите цикл, пока не будет выбран допустимый вариант.
Проблема в том, что 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