如何让用户从控制台输入任意数量的变量

本文关键字:任意数 变量 输入 控制台 用户 | 更新日期: 2023-09-27 17:53:32

这是我所做的代码,滚动两个骰子,直到出现一对。我的问题是,是否有办法让用户输入任意数量的骰子?

我不想创建50 int dice。如果我使用数组或列表,我也会遇到同样的问题。我必须将每个数组部分分配给numbergen 50次或更多次。也许我遗漏了什么?

static void Main(string[] args)
        {
            Random numbergen = new Random();
            int dice1=0;
            int dice2=1;
            for (int counter = 0; counter <= 1; counter++)
            {
                while (dice1 != dice2)
                {
                    dice1 = numbergen.Next(1, 7);
                    dice2 = numbergen.Next(1, 7);
                    if (dice1 == dice2)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine(dice1 + "'t" + dice2);
                        counter++;
                        dice1 = 0;
                        dice2 = 1;

                    }
                    else if (dice1 != dice2)
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine(dice1 + "'t" + dice2);
                    }
                    if (counter ==1 )
                    {
                        break;
                    }
                }
                }
            Console.ReadLine();
        }

如何让用户从控制台输入任意数量的变量

这是一个所有die必须匹配的版本。

using System;
namespace Dicey
{
    class Program
    {
        static void Main(string[] args)
        {
            int numberOfDice;
            // check for and retrieve the number of dice the user wants.
            if (args.Length != 1 || !int.TryParse(args[0], out numberOfDice))
            {
                Console.WriteLine("Please provide the number of dice.");
                return; // exit because arg not provided
            }
            // Must have at least one and set some arbitrary upper limit
            if (numberOfDice < 1 || numberOfDice > 50)
            {
                Console.WriteLine("Please provide a number of dice between 1 and 50");
                return; // exist because not in valid range
            }
            var dice = new int[numberOfDice]; // create array of die (ints)
            var rand = new Random();
            var match = false; // start with false (match not found yet)
            while (!match) // loop until match becomes true
            {
                var message = string.Empty;
                match = true; // assume match until something doesn't match
                for (var i = 0; i < numberOfDice; i++)
                {
                    // initialize dice at index i with the random number
                    dice[i] = rand.Next(1, 7);
                    // build the message line to write to the console
                    message += dice[i]; // first add the die's number
                    if (i < numberOfDice - 1)
                        message += "'t"; // if not at the end, add a tab
                    // check if the previous die (except for the first of course) has a different number
                    if (i > 0 && dice[i - 1] != dice[i]) 
                        match = false; // uh oh, not all match. we have to keep going
                }
                // print out the message
                Console.ForegroundColor = match ? ConsoleColor.Yellow : ConsoleColor.White;
                Console.WriteLine(message);
            }
            Console.ReadLine();
        }
    }
}

如果你想存储用户指定的整数,那么最简单的方法就是使用像int x[z]这样的数组,其中z是用户指定的数字,或者,更好的是,以List<int>的形式创建一个整数列表,您可以根据用户输入的数字添加整数。

在执行numbergen时,如果有许多不同的变量,您就不会遇到同样的问题,因为您可以通过一个for循环遍历列表或数组,并为它们赋值。

试试这个,要求用户输入骰子的数量,将其存储在一个变量中,然后创建一个大小相同的数组