C# for 循环
在这里,您将学习如何使用 for 循环,for循环的结构,嵌套的for循环多次执行语句或代码块,以及如何退出for循环。
for 关键字表示C#中的循环。for 循环反复执行语句块,直到指定的条件返回false。
语法:
for(initializer;condition;iterator){//代码块}
for循环包含以下三个可选部分,用分号隔开:
Initializer: 用于初始化一个变量,该变量将是 for 循环的局部变量,并且不能在循环外部访问。它也可以是零个或多个赋值语句、方法调用、增量或减量表达式,例如++i或i++,以及await表达式。
Condition:条件是一个布尔表达式,它将返回true或false。如果表达式的计算结果为true,则它将再次执行循环;否则,将退出循环。
Iterator:迭代器定义循环变量的增量或递减。
以下for循环执行一个代码块10次。
for(inti=0;i<10;i++){Console.WriteLine("i的值:{0}",i);}
试试看输出:
i的值:0i的值:1i的值:2i的值:3i的值:4i的值:5i的值:6i的值:7i的值:8i的值:9
在上面的实例中,int i = 0是一个初始化式,我们定义了一个 int 变量 i 并用0初始化它。第二部分是条件表达式 i < 10,如果该条件返回 true,那么它将执行一个代码块。在执行代码块之后,它将转到第三部分迭代器。i+ + 是一个增量语句,它将循环变量 i 的值增加1。现在,它将再次检查条件表达式,并重复相同的操作,直到条件表达式返回 false。下图说明了 for 循环的执行步骤。
下图说明了 for 循环的执行步骤。
如果一个代码块仅包含一个语句,则无需将其包装在大括号 { } 内,如下所示。
示例:for循环
for(inti=0;i<10;i++){Console.WriteLine("i的值:{0}",i);}
Initializer,condition 和 Iterator部分是可选的。您可以在for循环之前初始化变量,并且可以在代码块内定义条件和迭代器,如下所示。
示例:for循环C#
inti=0;for(;;){if(i<10){Console.WriteLine("i的值:{0}",i);i++;}else{break;}}
i的值:0i的值:1i的值:2i的值:3i的值:4i的值:5i的值:6i的值:7i的值:8i的值:9
由于这三个部分在for循环中都是可选的,因此在定义条件和迭代器时要小心。否则,它将是一个无限循环,永远不会结束循环。
for(;;){Console.Write(1);}
11111111111111111111....
for循环的控制变量可以是任何数字数据类型,例如double,decimal等。
for(doubled=1.01D;d<1.10;d+=0.01D){Console.WriteLine("i的值:{0}",d);}
i的值:1.01i的值:1.02i的值:1.03i的值:1.04i的值:1.05i的值:1.06i的值:1.07i的值:1.08i的值:1.09
for 循环中的步长部分可以增加或减少变量的值。
for(inti=10;i>0;i--){Console.WriteLine("i的值:{0}",i);}
i的值:10i的值:9i的值:8i的值:7i的值:6i的值:5i的值:4i的值:3i的值:2i的值:1
退出for循环
您也可以使用break关键字从for循环中退出。
for(inti=0;i<10;i++){if(i==5)break;Console.WriteLine("i的值:{0}",i);}
i的值:0i的值:1i的值:2i的值:3i的值:4
多个表达式
for循环还可以包括多个用逗号分隔的初始值设定项和迭代器语句,如下所示。
for(inti=0,j=0;i+j<5;i++,j++){Console.WriteLine("i的值:{0},J:{1}",i,j);}
i的值:0,J:0i的值:1,J:1i的值:2,J:2
for循环也可以包含语句作为初始值设定项和迭代器。
inti=0,j=5;for(Console.WriteLine($"初始化器:i={i},j={j}");i++<j--;Console.WriteLine($"迭代器:i={i},j={j}")){}
输出:
初始化器:i=0,j=5迭代器:i=1,j=4迭代器:i=2,j=3迭代器:i=3,j=2
嵌套循环
C#在另一个for循环内允许一个for循环。
for(inti=0;i<2;i++){for(intj=i;j<4;j++){Console.WriteLine("i的值:{0},J:{1}",i,j);}}
i的值:0,J:0i的值:0,J:1i的值:0,J:2i的值:0,J:3i的值:1,J:1i的值:1,J:2i的值:1,J:3