我正在学习C#编程,但偶然发现了我的部分代码。我使用Visual Studio2017。
我开发了一个神秘的数字游戏,我想确保重播,但我不知道该怎么做。
我希望当我们按O或N时再次播放,否则退出,但是我不能。 Scanf和printf不起作用。谢谢您的下一个答案。
char play;
bool isvalid = true;
void Number()
{
//Code...
While(isvalid);
{
Console.WriteLine("want to play again o/n ");
if(play == 'o')
{
Number();
}
else
{
play == 'n';
}
}
}
Number();
答案 0 :(得分:0)
我在粘贴的代码中看到了几个问题:
首先,在while循环后有一个分号。因此,大括号中的行不会像您期望的那样一遍又一遍地执行。
第二个-您没有填充play
变量。您应该使用 Console.Readline (可以输入任何字符串,然后按Enter键以显示输入提示)或 Console.Read (仅读取1个字符)
第三-您一次又一次调用Number函数-如果您玩游戏足够长时间,则会导致堆栈溢出异常。
我从您的代码中了解到,如果用户继续输入'o'字符,则希望一次又一次执行一些代码。否则,您想停止该循环。
代码为:
void Number()
{
//Code...
While(isvalid);
{
Console.WriteLine("want to play again o/n ");
play = Console.Read();
if(!string.IsNullOrEmpty(play) && play.Equals('o', CultureInfo.InvariantCulture)
{
/////// Some code you want to execute;
}
else
{
////// Some code you want to execute if user enters anything other than 'o'.
////// If you want to stop loop, set isValid = false; OR use break statement
}
}
}
我知道此答案可能无法完全解决您的问题。 希望这可以帮助您了解应该编写什么代码。