加载中...

初阶C语言(02)—学习笔记

循环语句其一 while

while语句的结构

while(表达式)
	循环语句;

其流程如下

image-20240618145427794

执行流程:先计算表达式,当表达式的值为“真”时,执行循环体语句,然后循环计算表达式,直到表达式的值为“假”,循环中止继续执行while的下一条语句。

while语句可以理解为:当(表达式)成立的时候,执行循环体。

test 打印1~10数字

#include<stdio.h>

int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ", i);
		i++;
	}
	return 0;
}

同样如上例,打印1~10数字,在while语句中加入break,视为跳出本次循环,其输出为1 2 3 4 ,代码如下

#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (5 == i)
			break;
		printf("%d ", i);
		i++;
	}
	return 0;
}

同样如上例,打印1~10数字,但是不打印5,在while语句中加入continue ,直接跳过本次循环中continue 后面的语句,代码如下

#include<stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		i++;
		if (5 == i)
			continue;
		printf("%d ", i);
		
	}
	return 0;
}

执行流程如下,i初始化为0,进入while循环判断0<10为真,进入循环体,首先i++得到i=1,进入if 判断2是否等于5,条件为假,跳过if语句,打印1,依次下去,当i++为5时,进入if 判断5是否等于5,条件为假真,执行if 语句,不打印5,然后5在进入while判断5<10条件为真,进入循环体,首先i++得到i=6,进入if 判断6是否等于5,条件为假,跳过if语句,打印6,依次下去,直到i=10不满足while判断10<10条件为假,终止循环。

小结

在while循环中,break时用于永久的终止循环;

continue 是用于跳过本次循环后面的代码,直接取判断部分,进行下一次循环的判断

循环语句其二 for

for 语句的结构

for (表达式1;表达式2;表达式3)
	循环语句;

表达式1为初始化部分,用于初始化循环变量

表达式2为条件判断部分,用于判断循环时候终止

表达式3为调整部分,用于循环条件的调整

其流程如下

image-20240618160658557

表达式1仅在循环执行之前执行一次;表达式2是用来判定循环操作是否继续执行的表达式,如果表达式成立(即条件为真)则执行循环体(stmt);表达式3作为“下一次循环的准备处理”,会在循环体执行后被判断、执行。

test 打印1~10数字

#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
	return 0;
}

同样如上例,打印1~10数字,但是不打印5,在for语句中加入continue ,直接跳过本次循环中continue 后面的语句,来到调整部分(表达式3)

#include<stdio.h>
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
			continue;
		printf("%d ", i);
	}
	return 0;
}

代码小建议

  • 不可在for循环体内修改循环变量,防止for循环失控

  • 建议for语句的循环控制变量的取值采用“前闭后开区间”写法

    int i = 0;
    // 前闭后开区间写法
    for (i=0;i <10 ;i++)
    {}
    
    //两边都是闭区间
    for (i=0;i <=9 ;i++)
    {}
    

一些for循环的变种

  • for循环中的初始化部分,判断部分和调整部分时可以省略的,但是不建议初学时省略,容易产生问题

  • C99语法才支持这种写法,C++中支持这种写法(即,int i =0;)

    for( int i = 0; i<10 ;i++)
    {
    	printf("Hello\n");
    }
    
  • 使用多于一个变量控制循环

    #include<stdio.h>
    int main()
    {
    	int x = 0;
    	int y = 0;
    	for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
    	{
    		printf("hehe\n");
    	}
    	return 0;
    }
    //输出
    //hehe
    //hehe
    

循环语句其三 do_while

do_while语句的结构

do
	循环语句;
while(表达式);

其流程如下

image-20240618164259799

可以看到do_while是先执行循环体,再进行判断。所有无论判断条件是否为真,该语句都会执行一次。

test 打印1~10数字

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	}
	while (i <= 10);
	return 0;
}

同样如上例,打印1~10数字,在do_while语句中加入break,视为跳出本次循环,其输出为1 2 3 4 ,代码如下

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (5 == i)
			break;
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
}

同样如上例,打印1~10数字,但是不打印5,在do_while语句中加入continue ,直接跳过本次循环中continue 后面的语句,代码如下

#include<stdio.h>
int main()
{
	int i = 0;
	do
	{
		i++;
		if (5 == i)
			continue;
		printf("%d ", i);
	} while (i < 10);
	return 0;
}
posted @ 2024-06-18 20:52  一只小小小飞猪  阅读(13)  评论(0编辑  收藏  举报