首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReadLine();值之间

ReadLine();值之间
EN

Stack Overflow用户
提问于 2013-05-02 21:11:25
回答 2查看 186关注 0票数 1

我做了一个骰子游戏,就在几分钟前,我问了一个解决方案,我得到了。它产生了一个新的问题,我似乎找不到答案。

这是代码。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Noppapeli
{
    class Program
    {
        static void Main(string[] args)
        {
            int pyöräytys;
            int satunnainen;
            int luku = 0;

            Random noppa = new Random((int)DateTime.Now.Ticks);

            Console.WriteLine("Anna arvaus");
            int.TryParse(Console.ReadLine(),out pyöräytys);

            Console.WriteLine("Haettava numero on: " + pyöräytys);
            Console.ReadLine();
            do
            {
                luku++;
                satunnainen = noppa.Next(1, 7);
                Console.WriteLine("numero on: " + satunnainen);
                if (satunnainen == pyöräytys)
                {
                    satunnainen = pyöräytys;
                }
            } while (pyöräytys != satunnainen);

            Console.WriteLine("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
            Console.WriteLine("Haettu numero: " + pyöräytys);
            Console.WriteLine("Pyöräytetty numero: " + satunnainen);
            Console.Write("Kesti " + luku + " Nopan pyöräytystä saada tulos!");
            Console.ReadLine();
        }
    }
}

问题是int.TryParse(Console.ReadLine(),out pyöräytys);只需要接受1-6之间的值。现在,如果我在里面放一个7,游戏就会循环,从一个D6中找到一个7。有没有一个简单的解决方案,或者我应该把骰子做得更大。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-02 21:17:25

您只需要添加某种类型的循环来确保该值有效,并继续循环,直到提供了一个有效值。

代码语言:javascript
复制
pyöräytys = -1; // Set to invalid to trigger loop

while (pyöräytys < 1 || pyöräytys > 6)
{
   Console.WriteLine("Anna arvaus");
   int.TryParse(Console.ReadLine(),out pyöräytys);

   if (pyöräytys < 1 || pyöräytys > 6)
   {
       Console.WriteLine("Invalid value, must be 1-6"); // Error message
   }
}
票数 1
EN

Stack Overflow用户

发布于 2013-05-02 21:17:49

只需验证输入值是否在1和6之间:

代码语言:javascript
复制
bool valid;
while (!valid)
{
    Console.WriteLine("Anna arvaus");
    int.TryParse(Console.ReadLine(),out pyöräytys);
    valid = (pyöräytys > 0 && pyöräytys <= 6);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16338916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档