#c# #while-loop
Вопрос:
Я следую учебнику по созданию простой программы командной строки для запроса пароля (консоль.writeline) и напишите, что пароль аутентифицирован, если введен правильно (инструкция console.readline if) — это работает гладко:
Console.WriteLine("Please Input Your Password:"); var password = Console.ReadLine(); if (password == "secret") Console.WriteLine("You have been authenticated"); else if (password != "secret") Console.WriteLine("You have not been authenticated");
Следующая часть упражнения состоит в том, чтобы запросить повторный ввод пароля, если он неверен. Я следовал упражнению в соответствии с учебником, но после запуска программы программа повторяет вопрос строку за строкой, а не методично выполняет шаги кода.
var password = ""; while (password !="secret") Console.WriteLine("Please Input Your Password:"); password = Console.ReadLine(); if (password == "secret") Console.WriteLine("You have been authenticated"); else if (password != "secret") Console.WriteLine("You have not been authenticated");
Буду благодарен за любой совет! Спасибо!
Комментарии:
1. Сделайте правильный отступ в коде, и вы будете знать, откуда взялась ваша ошибка. Подсказка : Если в
while
операторе или содержится более 1if
инструкции, необходимо использовать фигурные скобки{ }
Ответ №1:
В вашем while
цикле отсутствуют фигурные блоки {}
. когда {}
вы не указываете, цикл while указывает только на следующую строку вместо нужного вам блока кода.
Кроме того, вам это не нужно else if (password != "secret")
. else
этого достаточно
var password = ""; while (password !="secret") { Console.WriteLine("Please Input Your Password:"); password = Console.ReadLine(); if (password == "secret") Console.WriteLine("You have been authenticated"); else Console.WriteLine("You have not been authenticated"); }
Комментарии:
1. Спасибо! Еще предстоит узнать об этом в учебнике, но теперь все очень ясно!