C# 卡滞循环/迭代[C夏普]

C# 卡滞循环/迭代[C夏普],c#,console,C#,Console,我正在尝试做一个循环,当我键入“ok”时,它将添加所有输入的数字并显示所有输入数字的总和。如果你能给我一个方法,那就太好了。多谢各位 class Program { static void Main(string[] args) { { int sum = 0; while (true) { Console.WriteLine("Please enter a numb

我正在尝试做一个循环,当我键入“ok”时,它将添加所有输入的数字并显示所有输入数字的总和。如果你能给我一个方法,那就太好了。多谢各位

class Program
{

    static void Main(string[] args)
    {

        {
            int sum = 0;

            while (true) {

                Console.WriteLine("Please enter a number: \n");
                int num;
                if (int.TryParse(Console.ReadLine(), out num))
                {
                    {
                        if (num == 0)
                        {
                            break;
                            sum += num;
                        }
                    }
                }
                else if (Convert.ToString(num) == "ok")
                {
                    Console.WriteLine("Sum is " + sum);
                    break;
                }
           }
        }

     }


  }

}

这里有一个解决方案,请在粘贴拷贝之前阅读C#基本原理

//设置我们的变量
字符串输入;
var合计=0;
//开始一个永远运行的循环
做
{
//以字符串形式获取用户输入-此时代码不知道它是一个数字
控制台。写入(“输入一个数字:”);
input=Console.ReadLine();
//看看是否可以将字符串解析为一个数字,这个函数返回一个布尔值,因此如果字符串是int,则执行'total+=value'块
if(int.TryParse(输入,输出var值))
{
总+=价值;
}
else if(input.ToLower()!=“ok”)
{
//如果输入字符串不是int,并且输入不是“ok”,那么让他们知道他们的输入不是数字
Console.WriteLine(“请输入一个数字…”);
}
其他的
{
//输入字符串不是int,而是字符串“ok”,因此中断此循环
打破
}
}虽然(正确);
//跳出循环后,打印总数
控制台写入线(总计);

想想看。您正在读取一个字符串,然后将其解析为一个数字。然后你试着把这个数字转换回一个字符串,希望有一个数字能创建一个字符串“ok”?1) 不,数字是数字。一般来说,没有信。2) 为什么不将使用Console.ReadLine()读取的内容存储在一个变量中并进行测试?没有解释的解决方案实际上对仍在学习的人没有帮助。没错,我在基本教程中添加了注释logic@Luke从技术上讲,如果一个答案有帮助,它应该被提升投票。如果某个答案是OP最终使用的答案,则应对其进行检查。。细微的差别是,任何数量的答案都可能有帮助,因此会被提高投票率,但只有一个答案可以被宣布为OP的答案。。当有人回答我的问题时,我会投票并检查,因为这很有帮助,我选择了它