【发布时间】:2019-01-08 01:39:12
【问题描述】:
While 循环遍历 if 语句一次并停止。
我是 C# 新手,如果我忽略了一些看似显而易见的事情,请原谅。我目前正在编写一个程序,通过控制台条目可视化 Collatz 猜想。该程序首先提示用户输入一个自然数。该程序应该通过猜想的公式运行该数字,直到它最终达到值 1。但是,当我在控制台中输入数字时,程序通过一个公式运行它并崩溃。似乎 Double.Parse 行有问题。我已经尝试使用转换方法并尝试将“num”定义为十进制而不是双精度。
{
Console.WriteLine("Enter a natural number:");
Double num = Convert.ToDouble(Console.ReadLine());
while (num != 1)
{
{
if (num % 2 == 0)
{
Console.WriteLine(num / 2);
num = Double.Parse(Console.ReadLine());
}
else
{
Console.WriteLine(num * 3 + 1);
num = Double.Parse(Console.ReadLine());
}
}
Console.ReadLine();
}
}
}
}
【问题讨论】:
-
程序崩溃时看到什么错误?您是否首次发布了代码?什么代码被执行,哪一行导致崩溃?为什么需要
num = Double.Parse(Console.ReadLine());while 循环? -
您是否打算调用 ReadLine 读取您刚刚写出的数字?
-
Console.ReadLine()从用户那里获得输入。您的程序没有崩溃,它正在等待您输入内容然后按Enter。最有可能的是,您希望对num执行操作,而不是从用户那里获得更多输入,例如num = num / 2;或num = num * 3 + 1; -
谢谢大家的帮助。问题是
Console.ReadLine()在第一次运行 while 循环后记录了一个空白条目。我删除了Console.ReadLine()并用 manic_coder 的建议替换它。
标签: c#