0

我是初级程序员,

我有一个名为 myArray 的数组,我想知道这段代码中的 if 语句到底是做什么的。myArray[count] 还有什么作用?

         for(int i = 0; i < count; i++)

            if (number == myArray[i])
            {
            containsNumber = true;
            }

            if ( !containsNumber )
            {
               myArray [ count ] = number;
               count++;
            } // end if

干杯

4

8 回答 8

1

注意

因为代码不完整,我不得不做一些假设:

  • 所有变量都在之前声明和初始化
  • 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)将是相同的。

如果该数字不在数组中(containsNumberis false),则将其添加到下一个位置(myArray [ count ] = number;)并count加一(count++;)。

例子

假设数组包含值1和。Number 有值,count 是因为数组包含57433元素。

对于循环:

第一次迭代

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)。

现在数组包含值15和。74

于 2013-09-04T09:25:17.347 回答
1

在我看来,它正在寻找一个价值。如果存在,请跳过。如果没有,请将其添加进去。这是伪代码:

for i = 0 to the value in count
    if number is equal to myArray at position i
        Set a flag to say the number has been found.

    if(the flag is not set, the number has not been found)
        Set myArray at position count to the number i'm searching for
        increase count.
于 2013-09-04T08:48:02.867 回答
0

第一个 IF 语句

if (number == myArray[i])

检查数字是否存在于 myArray 中。如果不是,那么它将在当前索引位置添加数字并增加计数。

于 2013-09-04T08:49:27.847 回答
0

实际上,您放置的代码仅检查数组“myArray”中是否存在值“number”。然后,IF 条件检查变量是否包含数字并增加 FOR 中使用的限制“计数”。但是这个 IF 条件不是 FOR 的一部分,它在外面。

可能它缺少大括号来分隔 FOR。

这是机器解释的内容:

for(int i = 0; i < count; i++)
  if (number == myArray[i])
  {
     containsNumber = true;
  }

if ( !containsNumber )
{
   myArray [ count ] = number;
   count++;
 } // end if
于 2013-09-04T08:51:09.367 回答
0

有两种if说法,你指的是哪一种?

if (number == myArray[i])

Ifnumber等于 中的元素imyArray

if ( !containsNumber )

如果containsNumberfalse

于 2013-09-04T08:47:22.540 回答
0

它将签numbermyArray。如果myArray不包含number,那么它将存储myArray指定的最后一个索引处的数字count并以 1 递增count

于 2013-09-04T08:47:44.417 回答
0

如果“数字”不在“myArray”数组中,则数字将分配给当前位置(计数)的数组。

于 2013-09-04T08:46:39.523 回答
0

第一个 if 语句

if (number == myArray[i])

检查位置i中的项目myArray是否等于变量number包含的值

第二个 if 语句

if ( !containsNumber )

检查变量的值containsNumber是否为假。如果是,则可能意味着该数组不包含数字

在这种情况下,将数组myArray [ count ] = number;位置的项目设置为您之前搜索的那个,这样现在数组也包含这个值countnumber

于 2013-09-04T08:46:58.323 回答