怎样看懂循环语句中又内嵌循环
——初学者视角
经过一周的C#视频教学,让我印象最深就是for循环中又内嵌for循环,刚开始接触到这个新的流程循环语句,都很懵逼了,更何况是循环中内嵌另一个循环。经过不断地解读,终于是看懂了,现在我就将我的思路过程分享出来。
一、for循环
1.for的代码书写格式
for(表达式1;循环条件;表达式2)
{
循环体
}
2.for执行过程
(1)首先运行表达式1;
(2)其次判断循环条件是否为真,如果为真,则执行循环体,执行完后再运行表达式2,接着再判断循环条件……
(3)直到循环条件为假才会结束。
PS:不执行循环体的话,那么表达式2也不会执行
二、for中内嵌for循环
内嵌for循环语句其实就是外面for循环的循环体。
1.for内嵌for的代码书写格式
for(表达式1;循环条件a;表达式2)
{
for(表达式3;循环条件b;表达式4)
{
循环体
}
}
PS:这里注意for循环中声明的变量仅在整个for循环中有效,那么内嵌for循环中声明的变量,不能在外部for循环中使用。如果要使用,那么就需要在外部for中进行先声明变量,再在内嵌for中进行赋值。
2.for内嵌for的执行过程
(1)首先还是运行外部for的表达式1;
(2)其次判断循环条件a是否为真,如果为真,则执行内嵌for;
(3)这时执行内嵌for循环,先运行表达式3,再判断循环条件b是否为真,如果为真,则执行循环体,执行完后再运行表达式4,接着再判断循环条件b……如果为假,就结束内嵌for
(4)执行完内嵌for后再运行表达式2,接着再判断循环条件a是否为真,如果为真,则执行内嵌for循环,周而复始。如果为假,直接结束整个for内嵌for流程
三、for内嵌for示例
看了以上的理论知识字面上的理解,我们需要通过示例来进一步巩固,比较经典的案例就是交换排序
如:使用任意的排序算法对数组进行排序,排序后,重新输出数组内容
//声明int类型的nums数组
int[] nums;
//交换排序
for (int i = 0; i < nums.Length - 1; i++)
{
//在 i-(nums.Length-1) 范围内,将该范围内最小的数字提到下标i的位置
for (int j = i + 1; j < nums.Length; j++)
{
//将nums[i] 和 nums[j]进行比较大小
if (nums[i] > nums[j])
{
//如果nums[i] > nums[j],那么进行赋值交换,实现了小的在前,大的在后,形成升序排序
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
//重新输出
for (int i = 0; i < nums.Length; i++)
{
Console.Write(nums[i] + " ");
}
最后,希望大家能从我分享的一点经验中,收获更多,如果错误之处,希望大神们多多指点,谢谢