c#如何创建循环直到满足条件?

c#如何创建循环直到满足条件?,c#,C#,编写一个程序,继续提示用户猜测一个数字,直到找到正确的数字 已输入。还应该考虑用户验证;也就是说,用户输入的数字是否小于 1或大于10?他们输入了一个字符吗?首先创建一个新项目并将其命名为main 类(和文件)作为猜测编号。然后继续执行以下步骤:  创建一个名为number的整数变量,并将其设置为5。  提示用户猜测1到10之间的数字。  如果用户输入数字5,请打印“您已经猜到了数字!干得好!”  如果未输入5,则继续提示用户输入数字,直到输入5为止 这是到目前为止我的代码 使用制度 名

编写一个程序,继续提示用户猜测一个数字,直到找到正确的数字 已输入。还应该考虑用户验证;也就是说,用户输入的数字是否小于 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);