Я пытаюсь написать «игру «камень-ножницы-бумага»» на C#, и я хотел добавить экран «выбора имени».
namespace Program;
public class Program() {
static void Main(string[] args){
Console.WriteLine("Wilkommen Benutzer zu Schere, Stein, Papier!");
Console.WriteLine("Möchtest du einen Namen wählen? (j/n) ");
string? choice1 = Console.ReadLine();
if (choice1 == "j"){
Console.WriteLine("Dann wähle deinen Namen! ");
string? name = Console.ReadLine();
Console.WriteLine(name + ", ist das so richtig? (j/n) ");
string? choiceName = Console.ReadLine();
if (choiceName == "n"){
//Repeat "if (choice1 == "j")" here
}
else if (choiceName == "j"){
Console.WriteLine("Wilkommen " + name + "!")
}
}
else if (choice1 == "n"){
Console.WriteLine("Dann wird dir der Name \"Benutzer\" zugeteilt");
name = "Benutzer";
}
else {
Console.WriteLine("Ich nehme das als ein Nein")
Console.WriteLine("Dann wird dir der Name \"Benutzer\" zugeteilt");
name = "Benutzer";
}
}
}
В строке 13 я хочу, чтобы она вернулась или повторяла строку 7, пока пользователь не наберет «j».
Я не могу мыслить достаточно логично, чтобы использовать утверждение while
. Могу ли я еще что-нибудь сделать, чтобы повторить код if
?
ПС. Я новичок в C# и программировании в целом.
Вы можете использовать оператор do- while, блок кода будет повторяться до тех пор, пока имя выбора не равно j.
string? name, choiceName;
do
{
Console.WriteLine("Dann wähle deinen Namen! ");
name = Console.ReadLine();
Console.WriteLine(name + ", ist das so richtig? (j/n) ");
choiceName = Console.ReadLine();
}
while(choiceName != "j");
Console.WriteLine("Wilkommen " + name + "!");
Вы также можете обернуть процесс в метод.
static bool ChooseName(out string name)
{
Console.WriteLine("Dann wähle deinen Namen! ");
name = Console.ReadLine();
Console.WriteLine(name + ", ist das so richtig? (j/n) ");
return Console.ReadLine() == "j";
}
while(!ChooseName(out string name)) {}
Console.WriteLine("Wilkommen " + name + "!");