7_循环语句
【7_循环语句】关键词:循环语句分析、do...while
循环、while
循环、for
循环
1. 循环语句分析
- 循环语句的基本工作方式
通过条件表达式判定是否执行循环体
条件表达式遵循if
语句表达式原则 -
do
,while
,for
的区别
do
语句先执行后判断,循环体至少执行一次
while
语句先判断后执行,循环体可能不执行
for
语句先判断后执行,相比while
更简洁
do...while
循环文章图片
do...while循环 3.
while
循环文章图片
while循环 4.
for
循环文章图片
for循环 5. 三种循环的使用对比
#include int f1(int n)
{
int ret = 0;
if( n > 0 )
{
do
{
ret += n;
n--;
}
while(n>0);
}
return ret;
}int f2(int n)
{
int ret = 0;
while( n > 0 )
{
ret += n;
n--;
}return ret;
}int f3(int n)
{
int ret = 0;
for(int i=1;
i<=n;
i++)
{
ret += i;
}return ret;
}int main()
{
printf("%d\n", f1(100));
printf("%d\n", f2(100));
printf("%d\n", f3(100));
return 0;
}
6.
break
和continue
的区别-
break
表示终止循环的执行 -
continue
表示终止本次循环,进入下次循环执行
思考:switch
能否用continue
关键字?为什么?
不能。因为continue
关键字是为循环语句设计,与分支语句switch
没有任何关系。
#include void f1(int n)
{
int i = 0;
for(i=1;
i<=n;
i++)
{
if( (i % 2) == 0 )
{
break;
}printf("%d ", i);
}printf("\n");
}void f2(int n)
{
int i = 0;
for(i=1;
i<=n;
i++)
{
if( (i % 2) == 0 )
{
continue;
}printf("%d ", i);
}printf("\n");
}int main()
{
f1(10);
f2(10);
return 0;
}
输出结果:
1
1 3 5 7 9
7.
do
和break
的妙用一般写法:
#include
#include int func(int n)
{
int ret = 0;
int* p = (int*)malloc(sizeof(int) * n);
if(NULL == p)
{
return ret;
}if(n < 5)
{
return ret;
}if(n > 100)
{
return ret;
}for(int i=0;
i
输出结果:
ERROR
总结:这种写法当满足
if
条件时,函数直接return
,而没有free(p)
,因此会导致内存泄漏。可以使用do
和break
结合使用。修改代码如下:#include
#include int func(int n)
{
int ret = 0;
int* p = (int*)malloc(sizeof(int) * n);
// 使用 do 和 break,保证free(p)一定可以执行
do
{
if(NULL == p) break;
if(n < 5) break;
if(n > 100) break;
for(int i=0;
i
输出结果:
free(p)
ERROR
8. 小结
-
for
循环先进行判断再进行循环体 -
for
循环适合用于循环次数固定的场合 -
while
循环先进行判断再进行循环体执行 -
while
循环适合用于循环次数不定的场合 -
do...while
循环先执行循环体再进行条件判断 -
do...while
循环至少执行一次循环体
声明:此文章为本人在学习狄泰软件学院《C语言深度解析》所做的笔记,文章中包含狄泰软件资料内容一切版权归狄泰软件所有!
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长