关于数组的问题

时间:2009-04-06 20:00:02

标签: c# random numbers

我对此代码有疑问。我是初学者,喜欢学习C#。但接下来我正在谈论现在称为Array的话题,这很困难,我需要你的帮助。我想了解代码。 我在这里不明白的是,这里的第1,2,3,4和5部分是什么意思? 我不明白这里“const”和“byte”的功能是什么? 我很感激你的解释? 谢谢&问候;-)

1)

const byte numbers = 5;
byte[] myNumbers = new byte[numbers];
byte additionalNumbers;
Random coincidenceNumbers = new Random();

2)

string yourPassword;
Console.WriteLine("Please enter your password:");
yourPassword = Console.ReadLine();

if (yourPassword != "helloWorld")
{ 
    Console.WriteLine("\nWrong password\n");
    return;
}
else 
{
    Console.WriteLine();
    Console.WriteLine("Welcome to my world!");

    for (int i=0; i < myNumbers.Length; ++i)
    { 
        myNumbers[i]=(byte)(coincidenceNumbers.Next(1,50));
    }
}

3)

additionalNumbers=(byte) (coincidenceNumbers.Next(1,50));

4)

Array.Sort(myNumbers);
Console.WriteLine("\nThe Number is:\n");

5)

foreach (byte elem in myNumbers)
{
    Console.WriteLine("\t" + elem);
    Console.WriteLine();
    Console.WriteLine("Additional Number is: " + additionalNumbers);
}

6 个答案:

答案 0 :(得分:2)

const是一个保留字,意思是“变量”不会改变,相反,如果你试图改变,它的值不会改变

const byte numbers = 5;
numbers = 6; // will fail

byte是一种用于存储小数字的类型

然后,

byte[] myNumbers = new byte[numbers];

创建一个数字(5)位置数组。例如,您可以为数组中的任何位置指定值,如下所示:

myNumbers[0] = 4;  // position 1
myNumbers[1] = 45;  // position 2
myNumbers[2] = 25;  // position 3
myNumbers[3] = 0;  // position 4
myNumbers[4] = 12;  // position 5
myNumbers[5] = 3;  // will fail, array just have 5 positions

<强> [编辑]

additionalNumbers=(byte) (coincidenceNumbers.Next(1,50));

这里,coincidenceNumbers是一个Random对象,因此它将生成随机数。它的“Next”函数将生成一个整数。它接收2个参数:最小值和最大值。所以,这里它将生成1到50之间的随机数。

与byte相比,Integer非常大,所以有一个“cast”...整数将转换为byte。 如果整数小于255,没问题,在其他情况下你将失去精度

如果您尝试这样做

int x = 500;
byte y = (byte) x;
Console.WriteLine(y); // 244, precision lost

答案 1 :(得分:1)

您需要阅读阵列上的一些基础教育资料,例如尝试MSDN Arrays Tutorial

答案 2 :(得分:0)

byte是一个存储值0..255

的整数类型

const表示变量“numbers”的值永远不会改变(因此它是常量)。

答案 3 :(得分:0)

  1. 创建一个包含字节的常量变量,值为5.
  2. 为文本字符串创建并调用变量yourPassword。
  3. 遍历myNumbers中的每个字节。
  4. 对myNumbers进行排序。
  5. 再次遍历myNumbers中的每个字节(此时它已排序),调用每个字节“elem”。
  6. 你真的应该阅读一些关于编程的初学者教程(一般来说)。这与实际的Array类没什么关系。

    编辑:Aaaand在那里你改变了你的问题......

答案 4 :(得分:0)

我猜测1 *,2 *,3 *,4 *和5 *是在您正在查看的示例中指出某些内容的符号。

const 是一个修饰符,它将变量标记为常量(即它永远不会改变)

byte 是一种存储1字节(8位)数据的数据类型。

编辑好吧,现在我感到愚蠢......当我最初阅读它时,问题的格式并不完全相同。随意忽略我的回答......

答案 5 :(得分:0)

来自MSDN

<强>常量:

const关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常量,这意味着它不能被修改。

例如:

const byte numbers = 5;

您声明一个常量变量'byte',名为 numbers ,值为5。

稍后,您将无法更改变量数字,如:

numbers = 6; // this is not allowed because it was declared as const

我希望这能澄清你问题的第一部分。

我建议您前往MSDN并查询问题其他部分的条款。尝试养成使用此资源以供将来参考的习惯。