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

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

前言


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


一、分支与循环

分支语句

if

switch

循环语句

while

for

do while

goto语句


二、分支语句

🎈🎈🎈流程图

f83db03685014b198b03dc291d694169.png


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<stdio.h>
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 常量放在前面。


三、循环语句

🎈🎈🎈流程图

d5b7fe89c4514c4197627d4ecb0ce8e8.png


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′|┛ 嗷~~

目录
相关文章
|
1月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
69 5
|
1月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
30 8
|
30天前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
37 6
|
1月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
81 1
|
1月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
16 0
|
1月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
1月前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)
|
1月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)