注意
因为代码不完整,我不得不做一些假设:
- 所有变量都在之前声明和初始化
count
表示数组中的元素个数
- 数组足够大
containsNumber
初始化为false
短的
它检查给定的数字是否存在于数组中,如果不存在,它将添加它。
解释
首先,为了使其更具可读性,我们可以在 for 指令之后添加两个大括号:
for(int i = 0; i < count; i++)
{
if (number == myArray[i])
{
containsNumber = true;
}
}
if ( !containsNumber )
{
myArray [ count ] = number;
count++;
} // end if
因为后面没有括号,for
只会影响后面的语句或块,也就是if
语句。
首先,代码将遍历数组并检查每个小于count
(的值i
给定数字
如果找到值 ( if (number == myArray[i])
),则将变量containsNumber
设置为true
。
遍历数组后,containsNumber
检查变量。
if
语句必须包含一个布尔值,因此您可以只写而if (containsNumber)
不是if (containsNumber == true)
.
!
否定布尔值。这意味着您检查是否containsNumber
不正确。if (containsNumber != true)
或if (containsNumber == false)
将是相同的。
如果该数字不在数组中(containsNumber
is false
),则将其添加到下一个位置(myArray [ count ] = number;
)并count
加一(count++;
)。
例子
假设数组包含值1
和。Number 有值,count 是因为数组包含5
7
4
3
3
元素。
对于循环:
第一次迭代
i
具有值0
-->0
小于3
( count
)
if (number == myArray[i])
--> if (4 == myArray[0])
-->if (4 == 1)
-->false
第二次迭代
i
具有值1
-->1
小于3
( count
)
if (number == myArray[i])
--> if (4 == myArray[1])
-->if (4 == 5)
-->false
第三次迭代
i
具有值2
-->2
小于3
( count
)
if (number == myArray[i])
--> if (4 == myArray[2])
-->if (4 == 7)
-->false
第四次迭代
i
具有值3
-->3
不小于3
( count
)
for
结束
下一步
containsNumber
还是false
if ( !containsNumber )
--> 取反的值containsNumber
是什么意思if (true)
myArray [ count ] = number;
-->myArray [ 3 ] = 4;
number
( )的值4
设置为数组的第四个位置(请记住,数组以 开头0
)。
现在数组包含值1
、5
和。7
4