✨while 循环语句
1.1,while语句基本语法
1.2,while循环使用示例
1.3,while使用注意事项
1.4,while之跳转语句continue
1.5,while之跳转语句break
✨do-while 循环语句
2.1,do-while语句基本语法
2.2,do-while循环使用示例
2.3,do-while使用注意事项
2.4,do-while之跳转语句continue
2.5,do-while之跳转语句break
✨for 循环语句
3.1,for语句基本语法
3.2,for循环使用示例
3.3,for使用注意事项
3.4,for之跳转语句continue
3.5,for之跳转语句break
✨循环嵌套
4.1,循环嵌套基本语法
4.2,循环嵌套使用示例
4.3,循环嵌套使用注意事项
✨goto跳转语句
博客主页:小杨爱编程☆
作者简介:2022年博客萌新
我的座右铭:有志者立长志,无志者常立志
作者请求:由于博主水平有限,难免会有错误和不准之处,希望各位小伙伴能够在留言区批评斧正。
本篇博客主要向各位小伙伴们详细介绍C语言的循环结构。希望大家能够通过阅读这篇博客,受益良多!
了解和掌握C语言的循环结构知识,对循环结构有全新的认识和理解。
语句格式:
执行流程:
流程分析:
1. 第一步:计算表达式的值,若表达式值为真,执行第二步,若为假,则跳转至第四步。
2. 第二步:执行循环体语句。
3. 第三步:返回第一步。
4. 第四步:结束循环,执行while语句的下一条语句。
注意:while语句的特点:先执行判断条件,后执行循环体
示例:打印1-10的数字
代码如下:
#include
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
示例输出:
1,while语句后面的括号"( )"不可省略。
2,while语句中的表达式可以是任意类型的表达式,若表达式的值为非0,则表示循环条件为真,执行循环体语句;若表达式的值为0,则表示循环条件为假,不执行循环体语句,结束循环,执行循环后面的语句。
3,如果表达式一开始的值为0,则循环体一次都不执行,直接执行循环体后面的语句。
4,循环体语句可以是复合语句,即当循环体由多条语句构成时,必须用一个大括号将语句括起来,形成复合语句。
5,为使循环能够正常结束,循环体中应对表达式进行修正,使表达式的值趋于假,避免出现死循环。
示例如下:
#include
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
示例输出:
在这个while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次while循环终止,continue后边代码不执行,直接调到while语句的判断部分,i未进行i++操作,i始终为5,因此这个程序会陷入死循环,输出结果打印出1 2 3 4 后死循环。
总结:
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
2,continue语句只能在循环体语句中,常与if语句使用。
示例如下:
#include
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
}
return 0;
}
示例输出:
在这个while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。
注意:i++这个语句放置的位置与程序输出的结果有影响,放置位置不同,输出结果可能不相同。
总结:
1,当break语句用于while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。所以:while中的break是用于永久终止循环的。
2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。
由此返回目录
语句格式:
执行流程:
流程分析:
1,第一步:执行循环体语句。
2,第二步:计算表达式的值,若表达式的值为真(非0),返回第一步;若表达式的值为假(0),则执行第三步。
3,第三步:结束循环,执行do-while语句的下一条语句。
注意:do-while语句的特点为先执行循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。
示例:打印1-10的数字
示例代码:
#include
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
示例输出:
1,在do之后不能有语句结束符";",因为该循环还未结束。
2,在while(表达式)之后必须要有语句结束符";",表示do-while循环到此结束。
3,在循环体中必须要有改变循环条件的语句,否则会出现死循环。
示例代码:
#include
int main()
{
int i = 1;
do
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
示例输出:
在这个do-while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次do-while循环终止,continue后边代码不执行,直接调到while语句的判断部分,i未进行i++操作,i始终为5,因此这个程序会陷入死循环,输出结果打印出12 3 4 后死循环。(用法同while循环相类似)
注意:i++这个语句放置的位置与程序输出的结果有影响,放置位置不同,输出结果可能不相同。
总结:
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
2,continue语句只能在循环体语句中,常与if语句使用。
示例如下:
#include
int main()
{
int i = 1;
do
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
示例输出:
在这个do-while循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个do-while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。(用法同while循环相同)
总结:
1,当break语句用于do-while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。
2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。
由此返回目录
语句格式:
注意:
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断部分,用于判断循环是否终止。
表达式3为调整部分,用于循环条件的调整。
执行流程:
流程分析:
1. 第一步:首先计算表达式1。
2. 第二步:判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第三步;若为假(0),结束循环,转到第五步执行。
3. 第三步:计算表达式3。
4. 第四步:返回第二步继续执行。
5. 第五步:循环结束,继续执行for语句的下一条语句。
注意:表达式1只是在进入循环之前就计算了一次。表达式2,循环体语句和表达式3将重复执行。
示例:打印1-10的数字
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
示例输出:
1,省略表达式1,可将循环变量赋初值放在for之前,但不能省略第一个";"。
2,省略表达式2,表示不对循环进行控制,这时若没有其他的处理的话会出现死循环,应避免这种情况。
3,省略表达式3,可以在循环体语句中添加修饰循环变量的值的语句。
4,for语句的一般形式中的表达式1和表达式3可以是逗号表达式。
5,for语句的一般形式中的表达式2的值只要是非0,就执行循环体。
6,for语句的一般形式中的循环体语句可以省略。
示例代码:
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
}
return 0;
}
示例输出:
示例分析:
在这个for循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行continue语句,continue语句会使本次for循环终止,continue后边代码不执行,直接调到for循环语句的判断部分,未进行打印5这个数的操作,i根据判断部分的结果决定再进行i++操作,依次打印6 7 8 9 10,因此这个程序最终输出结果是打印出1 2 3 4 6 7 8 9 10,缺少5。(与while循环和do-while循环用法有区别)
总结:
1,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
2,continue语句只能在循环体语句中,常与if语句使用。
示例代码:
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
{
break;
}
printf("%d ", i);
}
return 0;
}
示例输出:
在这个for循环中,i从1依次打印后++。当程序打印4后,程序再执行i++这个代码后i的值为5,当i==5时,执行break语句,break语句会使这个while循环终止,后续步骤不进行,因此这个程序只会打印出1 2 3 4。(与while循环和do-while循环用法相似)
总结:
1,当break语句用于while循环语句中,可使程序终止循环进而执行while语句后继语句。简而言之,在循环中只要遇到break,就直接终止循环。
2,通常情况下,break语句总是与if语句一起配合使用,即满足条件退出循环。
由此返回目录
语句格式:
示例:打印九九乘法表
示例代码:
#include
int main()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%2d ",j , i, i * j);
}
printf("\n");
}
return 0;
}
示例输出:
1,外循环执行一次,内循环执行一轮。
2,循环嵌套格式中的内外循环体不允许出现交叉,即外循环要完全包含内循环。
3,循环嵌套时,内循环体中使用break语句和continue语句时,只影响包含它们的内循环,与外循环无关。
由此返回目录
goto语句:可以随意滥用和标记跳转。理论上 goto语句是没有必要的,但在某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。
多层循环这种情况使用break达不到目的。break只能从最内层循环退出到上一层的循环。
由此返回目录
各位小伙伴们,【小杨带你玩转C语言】循环结构(详解篇)就介绍到这里,下期向各位小伙伴们讲解函数部分内容。敬请期待!
如果各位小伙伴们感觉写的不错,或者阅读后有些许收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(✌关注,✌点赞,✌评论),多多支持一下!!
小伙伴们,切记!这些示例代码一定要记得自己实际操作一下,这样才能加深对这些知识的理解!
最后,感谢每一位小伙伴的阅读,让我们一起努力,一起加油,一起进步!