C语言循环结构详解【基础知识点+例子】

循环结构

for循环

表达式结构:
for(表达式1;表达式2;表达式3)
{
  语句;
}
  • 表达式1:设置初始条件,只执行一次。可以为零个,一个,多个变量设置初值;

  • 表达式2:是循环条件表达式,用来判断是否继续循环。在每次执行循环 (for后由一对花括号括起来的)体前先执行此表达式,决定是否继续执行循环;

  • 表达式3:在执行完循环体后才进行此语句;

所以可以理解为:

for(循环变量赋初值;循环条件;循环变量增值)
{
   语句;
}

需要注意的是:

  1. 表达式1可以省略,但后面的分号不能省略;

  2. 表达式2可以省略(但后面的分号不能省略),不设置和检查循环的条件,此循环可以终止的进行下去,也就认为表达式2始终为真值;

  3. 表达式3可以省略,但是应该在保证该程序能正常结束;

  4. for循环与while循环无条件等价;

例子
#include <stdio.h>
int main()
{//用for循环求从1到100的和
    int i, sum = 0;
    for (i = 1; i <= 100; i++)
    {
        sum += i;
    }
    printf("sum=%d\n", sum);
    return 0;
}
解读例子

for循环的执行顺序如下:
步骤1. 执行i=1,把i初始化为1
步骤2. 判断i<=100是否满足,满足则执行sum += i;(把i的值和sum相加然后赋值给sum),否则退出循环
步骤3. 执行i++,然后i变成2,然后继续执行步骤2,直到退出循环位置

for循环的嵌套

表达式基本结构:

for(;;)
{
  for(;;)
     {
       ...
     }
}

总循环次数:外循环次数*内循环次数;


while循环

基本框架:

表达式1while(表达式2)
{
  语句;
  表达式3}
  1. while后面的语句称为循环体;

  2. 循环体执行的次数由循环条件表达式(表达式2)来确定;

  3. 当循环条件表达式为真值时就执行循环体;

  4. while(1)//是一个死循环

运算符:
运算符含义
&&
||
>大于
<小于
>=大于等于
<=小于等于
==等于
例子
int i=0,sum=0;
while(i<=100)
{
   sum+=i;
   i++;
}
  1. 一定要给i赋初值;

  2. 如果没有i++那么这个while循环就是个死循环;

只要循环条件表达式为真,就执行循环体;


do while循环

基本框架

表达式1do
{
  语句;
}
while(表达式2)
  1. 先执行一次指定的循环体语句,再判别表达式是否为真,若为真返回重新执行循环体语句。
  2. 注意while后的()后是有的
例子
int i=0,sum=0;
do
{
  sum+=i;
  i++;
}
while(i<=100);
 

与while循环的区别:

  1. while循环先判断再执行;

  2. do…while循环先执行再判断;

  3. 只要第一次进入循环的条件就不满足,那么这两种循环的结果可能不同;

while与do while的例子
while
#include<stdio.h>
#include<windows.h>
int main()
{
	int i=0, sum = 0;
	scanf_s("%d", &i);
	while (i < 5)
	{
		sum += i;
		i++;
	}
	printf("sum=%d", sum);
	system("pause");
	return 0;
}
do while
#include<stdio.h>
#include<windows.h>
int main()
{
	int i=0, sum = 0;
	scanf_s("%d", &i);
	do
	{
		sum += i;
		i++;
	} while (i < 5);
	printf("sum=%d", sum);
	system("pause");
	return 0;
}

switch语句

关于C语言中我们做判断的时候一般是会想到if else,常见的if else的写法为:

if(表达书)
{}
else if(表表达式)
{}
else
{}

当出现更多的if else嵌套的时候通常会使我们的代码变的较为繁琐,使得我们在观看自己的代码的时候容易逻辑混淆,所以就有了switch的用法,switch的用法在代码中的运用广度没有if else 较强,

基本结构
switch(变量或者表达式)
{
    case 变量情况或者表达式情况1:语句1;break;
    case 变量情况或者表达式情况2:语句2;break;
    case 变量情况或者表达式情况3:语句3;break;
    ……
    default: 语句;//default情况就是指,除了你写的case的情况外的情况

}

一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。

例子
#include <stdio.h>
int main(){
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a){
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}

break与continue

break

作用:可以使流程跳到循环之外(结束整个循环过程),接着执行循环体下面的语句。

但是:break语句只能用于循环语句和switch语句,不能单独使用
在多层循环中,一个break语句只向外跳一层
在 C语言 的 switch(开关语句)中,break 语句还可用来在执行完一个 case(分支)后立即跳出当前 switch 结构

例子
for(;;){// A
    for(;;) {// B
        break;    // 只跳出B的for循环
    }
}
int i;
switch(i){
    case 1:
        break;    // 跳出Switch
    case 2:
        break; // 跳出Switch
    default:
        break; // 跳出Switch
}
continue

作用:并不是终止整个循环,只是提前结束本次循环,继续执行下次循环;
continue 语句的作用是跳过本次循环中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。

在 while 和 do-while 循环中,continue 语句使得流程直接跳到循环控制条件的测试部分,然后决定循环是否继续进行。在 for 循环中,遇到 continue 后,跳过循环体中余下的语句,而去对 for 语句中的“表达式3”求值,然后进行“表达式2”的条件进行条件测试,最后根据“表达式2”的值来决定 for 循环是否执行。

在循环体内,不论 continue 是作为何种语句中的语句成分,都将按上述功能执行,这点与 break 有所不同。

例子
int i = 0;
	while(i < 10)
	{
		i++;
		if(i == 5)
			continue;
		printf("%d\n",i);
		
	}

这段代码输出为:1 2 3 4 6 7 8 9 10

所以continue的总结:continue是用于终止本次循环的,也就是本次循环中continue后边的代码都不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值