C语言重要知识点【分支与循环】

作者:  花椒不辣

专栏:《C语言入门》

☕简介: 三人行,必有我师焉,一起学习一起努力,如果你有什么问题,也可以私信问我哦~ 大家一起加油~
 C语言重要知识点【分支与循环】_第1张图片


目录

前言

 一、分支与循环

二、分支语句

1.if(条件语句)

(1)if形式

(2)if-else形式

(3)else-if形式

注意:

2.switch(开关语句)

形式:

break:

default:

注意:

三、循环语句

 1.while

形式:

2.for

形式:

3.do while

形式:

注意:

四、goto语句

形式:

实例,关机程序:

总结


前言


大家好,我是小花椒。首先很荣幸能被各位大佬垂读这篇文章,以下全是小花椒近期关于分支与循环学习的成果,也希望这篇文章能够帮助到大家,如果有什么不对和不足的地方,还请各位大佬多多雅正!

 一、分支与循环

分支语句

if

switch

循环语句

while

for

do while

goto语句

二、分支语句

流程图

C语言重要知识点【分支与循环】_第2张图片

1.if(条件语句)

(1)if形式

if(表达式)

        可执行语句

int main()
{
	int n = 0;
	if (n == 0)
		printf("666");//如果n等于0打印666
	return 0;	
}

作用注释:若表达式成立(为真)执行可执行语句,否则不进行任何操作,执行后面语句。 

(2)if-else形式

if(表达式)

        可执行语句1

else

        可执行语句2

int main()
{
	int n = 0;
	if (n == 0)
		printf("666");//如果n等于0打印666
	else 
		printf("222");//如果n等于1打印222
	return 0;	
}

作用注释:若表达式为真,则执行可执行语句1,否则执行可执行语句2。

(3)else-if形式

if(表达式1)

        可执行语句1

else if(表达式2)

        可执行语句2

......

else if(表达式n)

        可执行语句n

else

        可执行语句n+1

作用注释:若表达式1为真,则执行语句1,否则如果表达式2为真,则执行语句2,......,如果if后面所有的表达式都不为真,则执行N+1。

注意:

else会和最近的if进行匹配,不良的代码风格会造成else悬空,以至于没必要的误会,所以大家一定要养成良好的代码风格哦。o((>ω< ))o

2.switch(开关语句)

形式:

switch(表达式)

{

         case 常量1:

                可执行语句1

                break;

         case 常量2:

                可执行语句2

                break;

.....

          case 常量n:

                可执行语句n

                break;

          default:

                可执行语句n+1

}

作用注释:当问题的讨论情况较多的时候,可以使用开关语句简化程序设计,使一个表达式可以产生不同的结果值。

break:

switch中的break,能帮助我们实现真正的分支。switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。 break语句是必须有的,它用来结束switch语句的执行。

default:

当所有case语句后面的表达式都不等于switch语句项中case后面整型常量表达式的值,就执行default后面的默认语句序列。不过,default部分是可选的。如果没有这一部分,并遇到所有case语句都不匹配,那么,就不作任何处理而进入后续程序段的执行。

例如下面代码,当输入day的值不同,打印的不同:

#include
int main()
{
	int day = 0;
	scanf("%d", &day);

	switch (day)
	{
	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:
		break;
	}

	return 0;
}

注意:

①switch后圆括号内表达式的值一般为整型、字符型或枚举类型,而且每个 case 后的“常量表达式”的类型都应该与switch后括号内表达式的类型一致。
② 若case 后面的语句省略不写,则表示它与后续 case 执行相同的语句。
③程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的 case常量,找到后则按顺序执行此 case 后的所有语句,包括后续case,而不再进行判断,直到遇到break语句或右花括号}为止。因此,只有switch语句和break语句配合才能形成真正意义上的多分支。也就是说,执行完某个分支后,一般要用break 语句跳出 switch 结构。若所有的case常量都不能与表达式的值相匹配,则执行 default 后面的语句序列 n+1。
④ 因为每个case后的常量只起语句标号(Label)的作用,所以 case 常量的值必须互不相同,不能自相矛盾,而且case 后只能是一个常量,不能是一个区间,也不能出现任何运算符(如关系运算符等)。例如,下面的两种写法都是错误的:
case 90~100: printf("8d--A\n",score); break; //语法错误
case 90<=score<=100: printf("8d--A\n",score); break; //语法错误
⑤ 改变 case常量出现的次序,不会影响程序的运行结果。但从执行效率角度考虑,一般将发生频率高的 case 常量放在前面。


三、循环语句

流程图

C语言重要知识点【分支与循环】_第3张图片

 1.while

形式:

while(表达式)

{

        可执行语句

}

int main()
{
	int a = 0;
	while (a < 10)//表达式
	{
		printf("%d\n", a);
		a++;
	}
	return 0;
}

作用注释:执行该语句时,是先判断后执行。先求表达式的值,若其值为非0值(真),表示件成立,则重复执行循环体内的可执行语句序列,直到表达式的值为0(假)时结束循的执行。

2.for

形式:

for(表达式1;表达式2;表达式3)

{

        可执行语句

}

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d\n", i);
	}
	return 0;
}

作用注释:其中,表达式1的作用是初始化循环控制变量,即为循环控制变量赋初值:表达式2复行的判断条件,这个条件也用于决定什么时候结束循环;表达式3的作用是给循环控制变量增值,即定义循环控制变量在每次循环结束后按什么方式变化,可以在每次循环时给控制变量增加一个正数值,也可以增加一个负数值。

3.do while

形式:

do

{

        可执行语句

}(表达式);

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

作用注释:与while语句不同的是,do-while语句是先执行后判断。执行do-while语句时,至少先执行一次循环体内的语句,然后才判断while后括号内表达式的值是否为真,若表达式的值为非0值(真),则继续重复执行循环体内的语句,直到表达式的值为0(假)时为止,结束循环。

注意:

循环中:continue结束的是本次循环,break结束的是本层循环,而return可以跳出所有循环。

四、goto语句

形式:

 //往前跳            

               goto  语句标号;

               ...

语句标号:...

//往后跳

               ...

               goto  语句标号;

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
    …
error:
 if(disaster)
 // 处理错误情况

作用注释:

它的作用是无须任何条件,直接使程序转跳到该语句标号所标识的语句处去执行,语句标号代表goto语句转向的目标位置,其命名规则与变量名相同,不能用整数作为句标号。

实例,关机程序:

int main()
{
    char input[10] = { 0 };
    system("shutdown -s -t 60");
again:
    printf("电脑将在1分钟内关机,如果输入:‘我真帅’,就取消关机!\n请输入: > ");
        scanf("%s", input);
    if (0 == strcmp(input, "我是猪"))
    {
        system("shutdown -a");
    }
    else
    {
        goto again;
    }
    return 0;
}

大家小心使用哦~不要设置成立刻关机,让朋友运行§(* ̄▽ ̄*)§

总结

 以上就是这段学习分支与循环的成果,有什么不足和错误,还望诸位大佬多多指教。

下次为大家带来操作符的分享,还请佬佬们多多关注,不会太久哦~

期待佬佬们的指点,关注。

下次见┗|`O′|┛ 嗷~~

C语言重要知识点【分支与循环】_第4张图片

你可能感兴趣的:(C语言入门,学习)