这段代码究竟做了什么?

时间:2013-09-04 08:43:24

标签: java

我是初学程序员,

我有一个名为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

干杯

8 个答案:

答案 0 :(得分: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.

答案 1 :(得分: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语句。

首先,代码将遍历数组并检查给定数字的小于counti的值)的每个位置。

如果找到该值(if (number == myArray[i])),则变量containsNumber将设置为true

迭代数组后,检查变量containsNumber

if语句必须包含布尔值,因此您只需编写if (containsNumber)而不是if (containsNumber == true)

!否定布尔值。这意味着您检查containsNumber是否为真。 if (containsNumber != true)if (containsNumber == false)将是相同的。

如果数字不在数组中(containsNumberfalse),则数字在下一个位置(myArray [ count ] = number;)添加,count增加1( count++;)。

实施例

假设数组包含值157。 Number的值为4,count为3,因为该数组包含3个元素。

For循环:

第一次迭代

i的值为0 - &gt; 0小于3count

if (number == myArray[i]) - &gt; if (4 == myArray[0]) - &gt; if (4 == 1)

- &GT; false

第二次迭代

i的值为1 - &gt; 1小于3count

if (number == myArray[i]) - &gt; if (4 == myArray[1]) - &gt; if (4 == 5)

- &GT; false

第三次迭代

i的值为2 - &gt; 2小于3count

if (number == myArray[i]) - &gt; if (4 == myArray[2]) - &gt; if (4 == 7)

- &GT; false

第四次迭代

i的值为3 - &gt; 3不小于3count

for结束

下一步

containsNumber仍为false

if ( !containsNumber ) - &gt; containsNumber的值被否定,意味着if (true)

myArray [ count ] = number; - &gt; myArray [ 3 ] = 4;

number4)的值设置为数组的第四个位置(请记住,数组以0开头)。

现在,数组包含值1574

答案 2 :(得分:0)

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

答案 3 :(得分:0)

第一个if语句

if (number == myArray[i])

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

第二个if语句

if ( !containsNumber )

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

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

答案 4 :(得分:0)

有两个if语句,你的意思是哪一个?

if (number == myArray[i])

如果number等于i中的元素myArray

if ( !containsNumber )

如果containsNumberfalse

答案 5 :(得分:0)

它会检查number中的myArray。如果myArray未包含number,则会将该数字存储在myArray指定的count的最后一个索引处,并将count增加1。 / p>

答案 6 :(得分:0)

第一个IF声明

if (number == myArray[i])

检查myArray中是否有数字。如果没有,则在当前索引位置添加数字&amp;递增计数。

答案 7 :(得分:0)

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

可能缺少大括号来界定FOR。

这是机器解释的内容:

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

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