将for循环转换为while循环时将int与数组进行比较

时间:2017-12-15 05:34:40

标签: c# arrays for-loop while-loop

在处理作业问题时,我已经完成了将for循环重写为while循环的任务,并将其作为for-loop代码段:

int[] numbers = { 2, 3, 5, 7, 11 };

for (int i = 0; i < numbers.Length; ++i)
{
    Console.WriteLine(numbers[i]);
}

到目前为止我所提出的是我认为接近的,但我可能完全错了。我已经查看了我的书和互联网,试图弄清楚重写的不正确之处。重写如下:

int[] numbers = { 2, 3, 5, 7, 11 };

int i;
while (i = numbers)
{
    Console.WriteLine(numbers[i]);
}

6 个答案:

答案 0 :(得分:2)

你似乎没有在while循环中递增你的i值,并且必须将条件改变为类似这样的东西i&lt;数字。长度

答案 1 :(得分:0)

你可以像这样重写:

int i=0;
while(true)
{
if(i<numbers.Length)
break;

Console.WriteLine(numbers[i]);
i++;

}

或者你可以将if条件放入其中......

答案 2 :(得分:0)

不要真的想对作业给出完整的答案。但这应该有所帮助:

for循环由三部分组成:

  1. 第一部分将在>循环
  2. 之前运行
  3. 第二部分是 while条件。循环运行时此条件仍然为真。这通常是最棘手的部分。
  4. 第三部分每次运行循环体
  5. 后运行

    现在一段时间条件只有第二部分:while条件。因此,当从a变为while时,您需要相应地重新排序循环的其余部分。

答案 3 :(得分:0)

int[] numbers = { 2, 3, 5, 7, 11 };

int i = 0;
while (i < numbers.Length)
{
    Console.WriteLine(numbers[i]);
    i++;
}

你必须像上面那样增加i的值,条件应该是i < numbers.Length并且看看这个伟大的example

答案 4 :(得分:0)

int[] numbers = { 2, 3, 5, 7, 11 };
int i = 0;
while (i < numbers.Length)
{
   Console.WriteLine(numbers[i]);
   i++;
}

确保初始化声明的变量int i;,否则您将收到警告/错误

此行i++中的(for i=0; i < numbers.Length; ++i)告诉计数器您的变量i增加i + 1 <符号告诉您它将迭代从0,1,2,3开始的零基数,这是.NET数组的4倍0 based所以要将它转换成While Loop关键的东西是以下

  

我是你的变量,你应该总是初始化为一个通常为0的值

     

&lt; sign,告诉你在while循环中使用它与&lt; =`

     

最后,while循环底部的i++表示,将i增加1,i++转换为i = i + 1

答案 5 :(得分:0)

int[] numbers = { 2, 3, 5, 7, 11 };
int i = 0;
while (i < numbers.Length)
{
   Console.WriteLine(numbers[i]);
   i++;
}

这是一个非常简单的方法。只有你的代码中的问题是条件而你没有增加一个引用数组索引的i。