前言
作者:阿辉不一般
你说呢:生活本来沉闷,但跑起来就有风
专栏:爱上C语言
作图工具:draw.io(免费开源的作图网站)
如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持博主,如有不足还请指点,博主及时改正,感谢大家支持!!!
对于语句我的理解就是:对于计算机的指令
C语言的语句共有五类:
而今天咱们要聊的就是控制语句,接着往下看
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言共有9种控制语句。
分为以下三类:
博主的上一篇博客介绍了分支语句,这篇重点讲解循环执行语句且穿插着转向语句
取得成功不仅需要选择,同样需要重复,我们选择了编程,同样得大量复的练习
而C语言中就提供了分支语句去选择,循环执行语句去重复
while(表达式)//条件判断
{
循环语句;
}
来让我我们试试这个新玩意
#include
int main()
{
int sum = 0;
while(sum < 10)
{
printf("阿辉不一般\n");
sum++;
}
return 0;
}
❤️简单讲解一下,先判断sum<10的真假,显然sum初始化为0,sum<10为真进入循环打印阿辉不一般,同时sum++,循环10次后sum=10跳出循环,屏幕上也打印了10个阿辉不一般
构成循环,一般需要三个条件:
1.循环变量初始化
2.循环的条件判断
3.循环变量的调整
这三个条件影响了循环的进行,一个不慎可能会造成死循环或者没能达到预期效果
❤️咱直接上代码
#include
int main()
{
int sum = 0;
while(sum < 10)
{
sum++;
if(sum == 5)
{
break;
}
printf("%d ",sum)
}
}
屏幕上仅仅打印了1 2 3 4,这是因为当sum为5的时候执行break语句
而break语句会直接跳出循环终止循环
咱们再看看continue
#include
int main()
{
int sum = 0;
while(sum < 10)
{
sum++;
if(sum == 5)
{
continue;
}
printf("%d ",sum);
}
}
与break不同的是,continue打印了1 2 3 4 6 7 8 9 10跳过了5没打印
continue会跳过本次循环continue后面的语句,直接进行下一次循环的判断
do
{
循环体;
}while(表达式);
int main()
{
int i = 10;
do
{
printf("%d\n", i);
} while (i < 10);
return 0;
}
do while循环与while循环堪称一样,唯一的区别就在于不论如何do while的循环体都会执行一遍
break和continue在do while中和while的用法都是一样的
C语言中已经有while循环,为什么还要for循环呢?下面让我们一探究竟
for(表达式1;表达式2;表达式3;)
{
循环语句;
}
上述的表达式分别是什么意思呢
下面我们直接上手实操一波
#include
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", i);
}
return 0;
}
上述代码
i
先初始化为零,i<10
为真进入循环打印i
,然后i++
直到i
=10停止循环,屏幕上打印 0 1 2 3 4 5 6 7 8 9
与while相比for循环中初始化部分、条件判断部分
和调整部分
更加集中,用起来更加便利,同时for循环的使用频率也是更高的
但也不是说while就比for差,for的模式固定,while则更加自由,两者各有千秋
for循环中同样可以使用break和continue,他们的意义和在while循环中是一样的
#include
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (i == 5)
{
break;
}
printf("%d ", i);
}
return 0;
}
#include
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
}
return 0;
}
for( ; ; )
,初学者不建议省略这些部分,容易出错例:
#include
int main()
{
int i = 0;
int j = 0;
for (; i < 5; i++)
{
for (; j < 5; j++)
{
printf("5 ");
}
}
return 0;
}
上面这个代码太典了,我一开始以为会打印25个
5
但是仅仅打印了5个5
因为当i
为0时内层循环循环一遍j
的值变成了5
,而内循环没有初始化j
,内循环(也就是第二层循环)就进不去了