如何让用户从控制台输入任意数量的变量
本文关键字:任意数 变量 输入 控制台 用户 | 更新日期: 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循环遍历列表或数组,并为它们赋值。
试试这个,要求用户输入骰子的数量,将其存储在一个变量中,然后创建一个大小相同的数组