c#如何创建循环直到满足条件?
编写一个程序,继续提示用户猜测一个数字,直到找到正确的数字 已输入。还应该考虑用户验证;也就是说,用户输入的数字是否小于 1或大于10?他们输入了一个字符吗?首先创建一个新项目并将其命名为main 类(和文件)作为猜测编号。然后继续执行以下步骤: 创建一个名为number的整数变量,并将其设置为5。 提示用户猜测1到10之间的数字。 如果用户输入数字5,请打印“您已经猜到了数字!干得好!” 如果未输入5,则继续提示用户输入数字,直到输入5为止 这是到目前为止我的代码 使用制度 名称空间程序 {c#如何创建循环直到满足条件?,c#,C#,编写一个程序,继续提示用户猜测一个数字,直到找到正确的数字 已输入。还应该考虑用户验证;也就是说,用户输入的数字是否小于 1或大于10?他们输入了一个字符吗?首先创建一个新项目并将其命名为main 类(和文件)作为猜测编号。然后继续执行以下步骤: 创建一个名为number的整数变量,并将其设置为5。 提示用户猜测1到10之间的数字。 如果用户输入数字5,请打印“您已经猜到了数字!干得好!” 如果未输入5,则继续提示用户输入数字,直到输入5为止 这是到目前为止我的代码 使用制度 名
类程序
{
静态void Main(字符串[]参数)
{
Console.WriteLine(“猜一个介于1和10之间的数字”);
int number=Convert.ToInt32(Console.ReadLine());
如果(数字<1 | |数字>10)
{
Console.WriteLine(“这超出范围”);
}
如果(数字=5)
{
WriteLine(“您猜对了数字”);
}
}
}
}
如果数字不等于5,我将如何编写代码来提示用户再次猜测?
谢谢当然希望我能取得好成绩
do
{
var number = Convert.ToInt32(Console.ReadLine());
....
}while(number != 5)
这里是您的代码稍微修改。有很多其他的方法可以做到这一点,这是一个和一个多一点可读性为新的程序员
bool Correct = false;
while (!Correct)
{
int number = Convert.ToInt32(Console.ReadLine());
if (number < 1 || number > 10)
{
Console.WriteLine("This is out of the range");
}
if (number == 5)
{
Console.WriteLine("you have guessed the correct number");
Correct = true;
}
}
bool Correct=false;
而(!正确)
{
int number=Convert.ToInt32(Console.ReadLine());
如果(数字<1 | |数字>10)
{
Console.WriteLine(“这超出范围”);
}
如果(数字=5)
{
WriteLine(“您猜对了数字”);
正确=正确;
}
}
循环可能会有所帮助……您不应该从任何您正在学习的地方复制粘贴问题,以便我们为您完成工作。如果你的问题措辞更好,人们会很乐意帮助你。你忘记了这里的范围。这甚至不会编译。所以,在一个好的成绩上没有掷骰子。drats…现在我将永远无法成为一名专业的开发人员!这很有效。我唯一建议的是使用int.TryPasre
。这些要求包括处理无法转换为int
的无效输入。但是一个容易理解的循环。同意。我试着让他的代码尽可能接近他的原始代码。我知道。这就是为什么我投了更高的票。只想将其添加为注释,以便OP在分析非整数字符串时能够看到问题。Enumerable.Range(1,10).Contains(number)
是多余的,O(N).确定。但是普通的。。。在你的i7)My Ryzen中只有1到10个,当然。但仅仅因为我们能够(而且CPU能够处理)而导致性能下降是一种糟糕的做法。特别是当O(1)解很简单的时候。如果认真的话,你是对的。我把它修好了是的,我很高兴。写好代码只是一个好习惯。有人不可避免地会复制此代码并使其可枚举。范围(110000)。包含(数字)
不理解性能含义。
bool Correct = false;
while (!Correct)
{
int number = Convert.ToInt32(Console.ReadLine());
if (number < 1 || number > 10)
{
Console.WriteLine("This is out of the range");
}
if (number == 5)
{
Console.WriteLine("you have guessed the correct number");
Correct = true;
}
}
static void Main(string[] args)
{
var ok = false;
do
{
Console.WriteLine("Guess a number between 1 and 10");
if (!int.TryParse(Console.ReadLine(), out var number))
{
Console.WriteLine("Not a number");
continue;
}
if (1 > number || number > 10)
{
Console.WriteLine("This is out of the range");
continue;
}
ok = number == 5;
if (ok)
{
Console.WriteLine("you have guessed the correct number");
}
} while (!ok);