从0开始学c语言-总结02-分支与循环语句

发布于:2022-11-28 ⋅ 阅读:(315) ⋅ 点赞:(0)

        总结篇不会汇总相应的练习题,也不会细致分析原因,只做最精简的重要汇总,会适当删去一些知识点,相关汇总文章放在最后。

C语言是结构化的程序设计语言:顺序结构、选择结构、循环结构

C语句可分为以下五类:
        1. 表达式语句
        2. 函数调用语句
        3. 控制语句
        4. 复合语句
        5. 空语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C 语言有九种控制语句,可以分为以下三类:
        1. 条件判断语句也叫分支语句: if 语句、 switch 语句;
        2. 循环执行语句: do while 语句、 while 语句、 for 语句;
        3. 转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。

目录

1·if分支语句

语句结构

书写注意

2·switch分支语句

语句结构

注意事项

3·while循环执行语句

语句结构和执行流程

代码注意

4·for循环执行语句

语法结构和执行流程

代码与书写注意

两个变量控制循环:

5·do……while()循环执行语句

语法结构和执行流程

 6·goto语句

7·汇总文章相关链接


1·if分支语句

语句结构

第一种 第二种 第三种(多分支)

if ( 表达式 )

    语句 ;

if ( 表达式 )
    语句 1 ;
else
    语句 2 ;
if ( 表达式 1 )
    语句 1 ;
else if ( 表达式 2 )
    语句 2 ;
else
    语句 3 ;

由一个 分号隔开的就是一个 语句,多语句请用花括号{}括起来。
如果表达式 为真就执行语句,为假就不执行。注:else和离他最近的if语句进行匹配

书写注意

1·两种条件用&&连接

else if (18 <= age < 30) 
    printf("最好的年纪");

这样写会恒为真,18<=age为真就判定为1,然后1<30就为真,就执行语句。

注:0表示假,非0表示真。

应写为:

else if (age >= 18 && age < 30) 
    printf("最好的年纪");

2·等号注意

int main()
{
	int a = 3;
	if (a = 4) //会有警告但是能够运行(能运行是因为为真,这里不是等于而是赋值的意思
		printf("aqiu");
	
	return 0;
}

        注意等号用==表示,一个=是赋值,且书写时候把常量放在左边较好

2·switch分支语句

语句结构

switch(整型表达式) 
{
    语句项;
}
//语句项是一些case语句
case 整型常量表达式: 
    语句;

注意事项

break和default的作用:

1·break

        break结束离他最近的switch。

        它的实际效果是把语句列表划分为不同的分支部分

2·default

        每个switch语句中只能出现一条default子句。

        但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。

编写注意:

1、在最后一个 case 语句的后面加上一条 break语句。
             (可以避免出现,在之前的最后一个 case 语句后面忘了添加 break语句)。
2、在每个 switch 语句中都放一条 default 子句是个好习惯,在后边再加一个 break 。

判断如何运行:

        1、找break和switch

        2.判断应该执行的语句

        3.执行时候注意break

        输入case对应整型表达式结果后并执行相应语句,在遇到break之前,把输入对应case之后所有case后的语句都执行不管是否符合case所对应的情况。

3·while循环执行语句

语句结构和执行流程

//while语法结构
while(表达式)  //表达式结果为真则执行循环语句
    循环语句;

代码注意

int main()
{
	int a = 0;
	while (a <= 10)
	{
		//if (a == 5)
		//	break;  //在while循环中,break用于永久的终止循环
		if (a == 5)
			continue;  //continue跳过本次循环它之后的语句
		               //来到while语句的表达式部分,判断是否进行下一次循环
		printf("%d\n", a);
		a++;
	}
	return 0;
}

        1.while循环语句中的break是用于永久终止循环的。

        2.while循环语句中continue跳过本次循环它之后的语句,来到while语句的表达式部分,判断是否进行下一次循环。

4·for循环执行语句

语法结构和执行流程

for(表达式1;表达式2;表达式3)
     循环语句;
表达式1、2、3分别对应:

初始化部分:初始化循环变量

判断部分:判断循环是否终止

调整部分:循环条件的调整方式

代码与书写注意

int main()
{
	int i = 0;
	//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i); //调试看过程
	}
	return 0;
}

break和continue:

1·continue

        for语句跳出循环的调整部分不会受到continue位置的影响,while语句的continue如果在调整部分之前,循环会无法跳出导致死循环。

2·break

        while语句和for语句的break倒是没有什么区别的,都是直接跳出循环了。

书写建议:

1. 不可在for 循环内修改循环变量,防止 for 循环失去控制。
2. 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

3· 最好别随意省略。

两个变量控制循环:

int main()
{
	int x, y;
	for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
	{
		printf("hehe\n");
	}
	return 0;
}

5·do……while()循环执行语句

语法结构和执行流程

这语句的特点就是至少执行一次,是先执行后判断是否循环的。

do
    循环语句;
while(表达式);  //注意这个分号

演示:
int main()
{
	int i = 1;
	do
	{
		printf("%d\n", i);
		i++;
	} while (i < 10);
	return 0;
}

 6·goto语句

goto语句多用于跳出两层或者多层循环

int main()
{
silent: //可以写在goto后面,注意是冒号
        //不过写在后面就是其他用途,而不是循环了
	printf("想哭\n");
	printf("不准哭,成年人的世界没有哭声\n");
	goto silent;
	return 0;
}

上面这段代码会一直循环这两句话,如果把silent放在其他地方也可以。这里只是演示一下goto会跳到哪里去。

注意:goto只能在一个函数范围内跳出来,不能跨函数

但是在使用的时候我碰到了这样的麻烦

 如果把注释掉的那段写回程序便没什么事了。

(这里如果后续知道原因会补充)

7·汇总文章相关链接

文章内有相关练习。

 从0开始学c语言-11-if分支语句、switch分支语句_阿秋的阿秋不是阿秋的博客-CSDN博客

从0开始学c语言-12-循环执行语句(1)while语句、getchar、putchar、缓冲区_阿秋的阿秋不是阿秋的博客-CSDN博客

从0开始学c语言-12-循环执行语句(2)for语句_阿秋的阿秋不是阿秋的博客-CSDN博客 

从0开始学c语言-12-循环执行语句(3)do……while()语句+练习_阿秋的阿秋不是阿秋的博客-CSDN博客

从0开始学c语言-过渡-练习之猜随机数字游戏、求最大公约数_阿秋的阿秋不是阿秋的博客-CSDN博客

从0开始学c语言-13-打印闰年、素数、goto语句、关机程序_阿秋的阿秋不是阿秋的博客-CSDN博客

本文含有隐藏内容,请 开通VIP 后查看