在一个随机数组中搜索特定值

3

你好,我被告知需要编写代码来确定一个值是否包含在任务7(随机数组)中,方法是从数组末尾开始向后比较搜索值和数组中的值。搜索完成后,如果找到该值,则打印“已找到该值”,否则打印“未找到该值”。

我理解如何创建随机数组,但我不知道如何反向遍历它并定位特定的值。

以下是目前的代码:

class Program
{
    static void Main(string[] args)
    {
        int[] myArray = new int[10];
        Random rand = new Random();

        for (int i = 0; i < myArray.Length; i++)
        {
            myArray[i] = rand.Next(19);
        }

    }
}

}


我卡在如何逆向操作并定位特定值上。换句话说,你被整个作业问题难住了? :) 这可能是目的:让你想出解决方法。友情建议:将来尝试自己思考一两个小时。如果你无法解决它,那么尝试在谷歌上搜索并看看是否可以帮助你解决它。我的意见。 - aquinas
2个回答

1
要向后移动,只需使用带有迭代器的for循环,将其设置为i--
for (int i = myArray.Length - 1; i >= 0; i---)
{
    if(// Check if myArray[i] equals the value to find)
    {
         // If it is the case, you can get out from the for loop with break
         break;
    }
}

for循环被分为4个部分:

for (initializer; condition; iterator)
    body
  1. initializer在循环的第一次迭代之前执行(您想从数组的最后一个索引开始:myArray.Length - 1
  2. condition在每次迭代时进行评估,如果此条件为真,则进入步骤3(您希望在for循环中保持i>=0),否则退出for循环
  3. body对于满足条件的每次迭代都会执行
  4. iterator被执行(这里因为您想向后移动,所以要减少i
  5. 然后回到步骤2

1
使用从大到小索引开始的循环。
 bool found = false;
 for (int i = myArray.Length - 1; i >=0 ; i--) 
     if(myArray[i] == 5)
        found = true;
 if(found)
 {

 }
 else
 {

 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接