C# for 循环
C# for 循环
在本文中,我们将了解 C# 中的 for 循环以及在程序中使用它们的不同方式。
在编程中,通常希望将某些语句块执行指定次数。一种可能的解决方案是将这些语句键入所需的次数。但是,重复次数可能无法提前知道(在编译期间),或者可能不够大(比如 10000)。
此类问题的最佳解决方案是循环。循环在编程中用于重复执行某个语句块,直到满足某个条件。
在本文中,我们将研究 C# 中的 for 循环。
C# for 循环
为 关键字用于在 C# 中创建 for 循环。 for 循环 的语法 是:
for (initialization; condition; iterator) { // body of for loop }
for 循环是如何工作的?
- C# for 循环有三个语句:
initialization
,condition
和iterator
. initialization
语句首先执行且仅执行一次。在这里,变量通常被声明和初始化。- 然后,
condition
被评估。condition
是一个布尔表达式,即它返回true
或false
. - 如果
condition
被评估为true
:- for 循环内的语句被执行。
- 然后,
iterator
执行语句通常会更改初始化变量的值。 - 再次
condition
被评估。 - 这个过程一直持续到
condition
被评估为false
.
- 如果
condition
被评估为false
, for 循环终止。
for循环流程图
<图>示例 1:C# for 循环
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1; i<=5; i++)
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
}
}
}
}
当我们运行程序时,输出将是:
C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5
在这个节目中,
initialization
语句是int i=1
condition
语句是i<=5
iterator
语句是i++
当程序运行时,
- 一、变量i 被声明并初始化为 1。
- 那么,条件(
i<=5
) 进行评估。 - 由于条件返回
true
,然后程序执行 for 循环的主体。它使用迭代 1 打印给定的行(迭代只是意味着重复)。 - 现在,迭代器 (
i++
) 进行评估。这会增加 i 的值 到 2。 - 条件(
i<=5
) 再次评估,最后, i 的值 加 1。条件将评估为true
前 5 次。 - 当i的值 将为 6,条件为
false
,因此循环将终止。
示例 2:for 循环计算前 n 个自然数之和
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int n = 5,sum = 0;
for (int i=1; i<=n; i++)
{
// sum = sum + i;
sum += i;
}
Console.WriteLine("Sum of first {0} natural numbers = {1}", n, sum);
}
}
}
当我们运行程序时,输出将是:
Sum of first 5 natural numbers = 15
这里,sum 的值 和 n 分别初始化为 0 和 5。迭代变量 i 初始化为 1 并在每次迭代时递增。
在 for 循环中,sum 的值 增加 i 即 sum = sum + i
. for 循环一直持续到 i 小于或等于 n (用户输入)。
让我们看看给定程序在每次迭代中会发生什么。
最初,i =1, 总和 =0 和 n =3
迭代 | i 的值 | i<=5 | 总和的值 |
---|---|---|---|
1 | 1 | 是的 | 0+1 =1 |
2 | 2 | 是的 | 1+2 =3 |
3 | 3 | 是的 | 3+3 =6 |
4 | 4 | 是的 | 6+4 =10 |
5 | 5 | 是的 | 10+5 =15 |
6 | 6 | 假 | 循环终止 |
因此,当 n =5 时,sum 的最终值为 15。
for 循环中的多个表达式
我们还可以在 for 循环中使用多个表达式。这意味着我们可以在一个 for 循环中拥有多个初始化和/或迭代器语句。让我们看看下面的例子。
示例 3:具有多个初始化和迭代器表达式的 for 循环
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=0, j=0; i+j<=5; i++, j++)
{
Console.WriteLine("i = {0} and j = {1}", i,j);
}
}
}
}
当我们运行程序时,输出将是:
i = 0 and j = 0 i = 1 and j = 1 i = 2 and j = 2
在这个程序中,我们声明并初始化了两个变量:i 和 j 在初始化语句中。
此外,我们在迭代器部分有两个表达式。这意味着 i 和 j 每次迭代都加 1。
没有初始化和迭代器语句的for循环
初始化、条件和迭代器语句在 for 循环中是可选的。这意味着我们也可以在没有这些语句的情况下运行 for 循环。
在这种情况下,for 循环充当 while 循环。让我们看看下面的例子。
示例 4:没有初始化和迭代器语句的 for 循环
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int i = 1;
for ( ; i<=5; )
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
i++;
}
}
}
}
当我们运行程序时,输出将是:
C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5
在这个例子中,我们没有使用初始化和迭代器语句。
变量 i 在 for 循环之上初始化,其值在循环体内递增。该程序与例1中的程序相同。
同样,条件也是一个可选语句。但是如果我们不使用测试表达式,for循环将不会测试任何条件并且会一直运行(无限循环)。
无限循环
如果 for 循环中的条件始终为真,则 for 循环将永远运行。这称为无限循环。
示例 5:无限循环
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1 ; i>0; i++)
{
Console.WriteLine("C# For Loop: Iteration {0}", i);
}
}
}
}
在这里,i 初始化为1,条件为i>0
.在每次迭代中,我们都会增加 i 的值 1,所以条件永远不会是 false
.这将导致循环无限执行。
我们还可以通过将条件替换为空白来创建无限循环。例如,
for ( ; ; ) { // body of for loop }
或
for (initialization ; ; iterator) { // body of for loop }
C语言