我知道当你引用一个数组时,它从0开始,但是array.length是从0开始还是从1开始?
因为如果我将数组大小指定为10,我将其引用为0-9,这是否意味着array.length是0-9?
我问,因为我使用array.length作为随机生成数字的最大大小,但我这样做
randomArrayPointer = randomIntNum( 0 , ( posPercents.Length - 1 ) ); //generates a random number that fits the arrays range
if( randomArrayPointer < posPercents.Length ) //ensures the integer is less than the length of the array
{
return ( posPercents [ randomArrayPointer ] );
}
else
{
return ( posPercents [ 0 ] );
}
这是我的方法randomIntNumber(I +为最大值,因为当指定1到10作为Random()的输入时,它会给我一个介于0-9之间的数字)
public static int randomIntNum( int min , int max )
{
if( max != 1 & ( max != ( min + 1 ) ) ) //if max isn't 1 and max isn't the minimum + 1
{
max = max - 1; //remove 1, this corrects the random generator so that the parameters sent don't need adjusting
}
int newInt;
newInt = rnd.Next( min , max );
return ( newInt );
}
编辑:
现在这是我的方法,谢谢大家。
public static double randomPercentChange( Boolean? positive )
{
if( positive == true )
{
return ( posPercents [ rnd.Next( posPercents.Length ) ] );
}
else if( positive == false )
{
return ( negPercents [ rnd.Next( negPercents.Length ) ] );
}
else if( positive == null )
{
return ( 1 );
}
return 1;
}
答案 0 :(得分:6)
如果数组为空,则它包含0个元素,长度为0。
如果你的数组在0索引中有1个元素,那么它的长度等于1。
如果你的数组在0和1个索引中有2个元素,那么它的长度等于2。
依旧......
答案 1 :(得分:0)
Array.Length指的是数组的大小,即它可以容纳多少个元素。索引它们时,数组基于0,因此示例迭代看起来像......
for(var i = 0; i < myArray.Length; i++)
{
var elm = myArray[i];
//do something with the element
}
答案 2 :(得分:-1)
我想你的问题是,&#34;为什么数组中的最后一个值是posPercents.Length
而不是posPercents.Length = 10
?&#34;
由于数组基于零,10
,但最后一个值不在索引9
。它位于索引posPercents.Length - 1
,因此其索引为{{1}}。