Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#While Loop vs For Loop?_C#_Loops_For Loop_While Loop_Console - Fatal编程技术网

C#While Loop vs For Loop?

C#While Loop vs For Loop?,c#,loops,for-loop,while-loop,console,C#,Loops,For Loop,While Loop,Console,在C#中,一个问题困扰了我一段时间,while和for循环之间的实际主要区别是什么。它只是纯粹的可读性;在for循环中基本上可以做的所有事情都可以在while循环中完成,只是在不同的地方。以这些例子为例: int num = 3; while (num < 10) { Console.WriteLine(num); num++; } int num=3; while(num

在C#中,一个问题困扰了我一段时间,while和for循环之间的实际主要区别是什么。它只是纯粹的可读性;在for循环中基本上可以做的所有事情都可以在while循环中完成,只是在不同的地方。以这些例子为例:

int num = 3;
while (num < 10)
{
    Console.WriteLine(num);
    num++;
} 
int num=3;
while(num<10)
{
控制台写入线(num);
num++;
} 
vs

for(int x=3;x<10;x++)
{
控制台写入线(x);
}

两个代码循环产生相同的结果,并且for循环迫使您声明一个新变量并在每个循环开始时设置迭代值,这是两者之间的唯一区别吗?也许我遗漏了其他一些重要的区别,但如果有人能让我明白这一点,那就好了。谢谢。

是的,它们在背景中(即在汇编中)完全相同

通常,当重复次数已知且我们不打算更改计数器(索引)时,使用
for
循环更为常见

while
循环还具有哨兵循环的优点,例如,当从用户获取输入直到给出特定内容时,哨兵循环更容易

这两者之间的唯一区别是for循环强制您声明一个新变量,并在每个循环开始时设置迭代值

for循环将强制您不执行任何操作。您可以省略这3个元素中的任何一个。最小的形式是

for(;;)  // forever
{
  DoSomething();
}
但您可以使用3个元素编写更简洁的代码:

for(initializer; loop-condition; update-expression)
{
  controlled-statements;
}
相当于:

{
    initializer; 
    while(loop-condition)
    {
       controlled-statements;

    continue_target:  // goto here to emulate continue
       update-expression;
    }
}
注意,
for(inti=0;…;…;…)
中的外部大括号
{}
是for循环的局部。明显的好处


但是用法上的主要区别在于调用
continue在循环内部,while循环比for循环更容易出错

基本上,区别在于: For循环预先知道它将循环多少次,而while循环不知道。 For循环有一个初始化步骤,而while循环没有 For循环使用“步长值”或递增/递减步长,而while循环则不使用。 下面是一个Java for循环的示例,循环从0到99,并打印出数字。请注意,作为for循环结构的一部分,循环是如何初始化和递增的

for(int i=0; i<100; i++) {
  System.out.println(i);
}

for(int i=0;i当您确定结束值是什么或循环应该执行多少(直到什么值)时,请使用“for”循环,否则使用“while”循环。

“这只是纯粹的可读性吗?”-是的。虽然
for
循环更为惯用。While循环的参数中不包含某种步进。也可以将While循环设置为在循环中没有明确的结束,而for循环有定义的开始和结束。for循环不必有定义的结束,@shaun。作为一个明显的反例,
for(;;)
是一个无限循环。密切相关:for/while/do关键字都只是
goto
:)的语法糖
for(int i=0; i<100; i++) {
  System.out.println(i);
}
int [] intArray = {1, 3, 5, 7, 9}; 
int i=0;
while(i<intArray.length) {
  System.out.println(intArray[i++]);