c# - 这个 do while 循环一直在进行,我无法停止
问题描述
我正在尝试制作一个游戏,您必须选择一个随机数,计算机会告诉您您是否正确。但是在我拥有的代码中,循环将继续执行 if 命令中的内容。如果我试图打破它,它只会做它的 while 部分。我希望能够输入一个数字,告诉你它是否正确,然后让你再次猜测。谢谢您的帮助!另外,请忽略部分代码不计为代码的方式。我无法让它进入代码部分,我也没有很努力。也很抱歉变量名异常。
using System;
using System.Threading;
namespace newProject
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("useless intro");
int shortOut;
Random rnd = new Random();
int daNumber = rnd.Next(9);
string userNumber = Console.ReadLine();
bool isParsable = Int32.TryParse(userNumber, out shortOut);
if (isParsable)
{
do
{
if (shortOut != daNumber)
{
Console.WriteLine("no");
}
} while (shortOut != daNumber);
Console.WriteLine("that's it yeah");
}
}
}
}
解决方案
您的代码只要求用户输入一次。然后它检查它是否是一个int
,如果是,它然后启动永远不会改变变量的循环。它会永远循环下去。
您需要反复询问用户的输入,直到他们猜对为止。要求输入需要在循环中。只有当他们做对了,你才应该跳出循环。
这是我的做法:
Random rnd = new Random();
//choose a number between 0 and 8 inclusive
int daNumber = rnd.Next(9);
// start with a value that the user would never enter
int daGuess = int.MinValue;
//loop if the two numbers are not the same
while (daGuess != daNumber)
{
Console.WriteLine("Enter your guess:");
if (int.TryParse(Console.ReadLine(), out daGuess))
{
if (daGuess != daNumber)
{
Console.WriteLine("no");
}
else
{
Console.WriteLine("that's it yeah");
}
}
}
推荐阅读
- xcode - Xcode连接手机后出现错误
- java - 我无法使用 java netbeans 存储数据本地主机(数据库)
- graphql - 不会出现在您的模型定义中,也不会出现在关系中(Strapi)
- firebase - 带有firebase的时间戳监听器
- python-3.x - 从数组中删除给定元素之前的所有元素
- angular - NGRX 特征缩减器未在 angular9 中初始化
- ios - Ionic v1 - 本机日期选择器的视图仅在 iPhone 7 中不可见(带有取消和选择按钮的白屏)?
- javascript - 如何检查 Linux 系统上的哪个用户?
- r - 在每个参与者的变量内计算
- oracle - Oracle 文本包含和标记有不同的行为