我的代码多次输出相同的字符串。例如,输入 40 会导致“不!您的答案太高。请重试。” 两次,并且显示两次“您的答案太低”。while (numberguess != 40.5){ numberguess = Console.Read(); if (numberguess < 40.5) { Console.WriteLine("Nope! Your answer is too low. Try again."); } else if (numberguess > 40.5) { Console.WriteLine("Nope! Your answer is too high. Try again."); } else if (numberguess == 40.5) { Console.WriteLine("Correct! Wow, I didn't really think you would figure it out!"); break; }}我希望在输入数字时只显示一个字符串,并且我希望它能够对应于它是低于还是高于特定数字。
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
这条线有几个问题:
numberguess = Console.Read();
首先,它返回一个 int,因此它永远不会返回 40.5。此外,它一次读取一个字符,包括通过 Enter 键输入的字符,因此当您键入 40 并按 Enter 时,它会读取“4”,然后是“0”,然后是“\r”,最后是“\n”(将这些字符转换为字符到整数)。这就是它显示四条消息的原因。
相反,您必须读取在 Enter 之前键入的所有内容Console.ReadLine()
,然后将其(字符串)转换为双精度型。所以最后你必须这样做:
numberguess = double.Parse(Console.ReadLine());
萧十郎
TA贡献1815条经验 获得超13个赞
Console.Read() 将单个字符读取为 int。如果您试图获取用户在按 Enter 键之前输入的内容,请读取当前行,然后从中解析一个整数。
int.Parse(Console.ReadLine());
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消