C语言·分支和循环语句(超详细系列·全面总结)

前言:Hello大家好😘,我是心跳sy,为了更好地形成一个学习c语言的体系,最近将会更新关于c语言语法基础的知识,今天更新一下分支循环语句的知识点,我们一起来看看吧~

目录

一、什么是语句?💫

1、⭐️语句的定义⭐️

2、⭐️语句的分类⭐️

二、分支语句 💫

1、⭐️if 语句⭐️

2、⭐️switch 语句⭐️

三、循环语句 💫

1、⭐️while 循环⭐️

1.1、🌈while 循环中的 break 

1.2、🌈while 循环中的continue 

2、⭐️for 循环⭐️

2.1、🌈for 循环的变种

2.2、🌈for 循环与 while 循环

3、⭐️do...while() 循环⭐️


 

🌈心跳sy的C语言专栏  ⏪C语言知识点汇总到这了,有兴趣的友友可以订阅看看哟~

一、什么是语句?💫

1、⭐️语句的定义⭐️

在C语言中,语句是用于执行操作的代码单元。

语句总是以分号(;)结尾,这是C语言中语句的标志;语句可以简单,也可以复杂,它们可以执行各种操作,如计算、赋值、函数调用、条件执行、循环等。

2、⭐️语句的分类⭐️

👉C语句可分为以下五类:

🔶表达式语句

由表达式加上分号组成,例如:a+b=c;是一个赋值语句,用于将 b+c 的结果赋值给 a;

🔶函数调用语句

用于调用函数并执行它的代码,例如:printf("Hello,World!") 调用了标准库中的printf函数来输出文本到控制台;

🔶控制语句

用于控制程序的执行流程;包括条件语句(如 if 和 switch)和循环语句(如 for、while 和 do while)

🔶复合语句

由花括号 { } 包围的一个或多个语句的集合;

🔶空语句 

只有一个分号的语句,不执行任何操作,通常用于占位符或者满足语法要求;

👉本节主要介绍控制语句中的分支语句和循环语句~

二、分支语句 💫

👉分支语句又叫条件判断语句,是一种选择结构,包括 if 语句和 switch 语句;

1、⭐️if 语句⭐️

⭕️if语句:用于基于条件执行代码块

⭕️语法结构

if(表达式)    

    语句;

if (condition)
{
    //如果条件为真,执行这里的代码
}

⭕️if 语句还可以与 else 语句结合使用,用于在条件为 false 时执行另一段代码:  

if(表达式)    

    语句1;

else  

    语句2;

if (condition) 
{
    // 如果条件为真,执行这里的代码
} 
else 
{
    // 如果条件为假,执行这里的代码
}

⭕️if 多分支,语句可以嵌套,以便更复杂的条件检查:

if(表达式1)    

   语句1;

else if(表达式2)    

   语句2;

else    

   语句3;

if (condition1) 
{
    // 如果条件1为真,执行这里的代码
} 
else if (condition2) 
{
    // 如果条件1为假且条件2为真,执行这里的代码
} 
else 
{
    // 如果条件1和条件2都为假,执行这里的代码
}

👉代码演示:

#include <stdio.h>
//代码1
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
    {
        printf("未成年\n");
    }
}

🔸输入的年龄若小于18,则输出“未成年”并换行;

int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
     {
        printf("未成年\n");
     }
    else
     {
        printf("成年\n");
     }
}

🔸输入年龄若小于18则输出未成年,否则输出成年; 

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if(age<18)
     {
        printf("少年\n");
     }
    else if(age>=18 && age<30)
     {
        printf("青年\n");
     }
    else if(age>=30 && age<50)
     {
        printf("中年\n");
     }
    else if(age>=50 && age<80)
     {
        printf("老年\n");
     }
    else
     {
        printf("老寿星\n");
     }
    
}

🔸输入年龄若小于18,则输出少年;若大于等于18小于30,则输出青年;若大于等于30小于50,则输出中年;若大于等于50,小于80,则输出老年;若大于等于80,则输出老寿星; 

🔴注意:

else 的匹配问题:else 是和它离得最近的 if 匹配的。

2、⭐️switch 语句⭐️

👉在C语言中,switch 语句提供了一种根据不同条件执行不同代码块的方法,它是一种多分支选择结构,适用于一个变量或表达式有多种可能的值(比如5、6、7或以上个值)时进行决策。

👉switch 语句的语法如下:

switch (expression) 
{
    case constant1:
    // 如果expression等于constant1,则执行这里的代码
        break;
    case constant2:
    // 如果expression等于constant2,则执行这里的代码
        break;
    // 可以有任意数量的case
    default:
    // 如果expression与所有constant都不匹配,则执行这里的代码
        break;
}

⭕️其中 expression 通常是一个变量或整型表达式,constant1、2是整型常量表达式,每个 case 后跟一个常量值(如整数常量或字符常量),如果 expression 的值与某个 case 后的常量值相等,则执行该 case 后的代码块,直到遇到 break 语句为止。如果没有任何 case 常量与 expression 的值匹配,且提供了 default 标签,则执行 default 后的代码块。

⭕️break 语句用于退出 switch 语句,防止执行其他 case 的代码块。如果忘记在每个 case 的代码块末尾添加 break 语句,程序将继续执行下一个 case 的代码块,直到遇到 break 为止,这可能是程序员想要的行为,也可能导致错误,所以在使用时需格外注意。

👉以下演示了根据一周的不同天数打印不同的消息:

#include <stdio.h>

int main() {
    int day = 3; // 假设今天是星期三
    switch (day) {
        case 1:
            printf("今天是星期一\n");
            break;
        case 2:
            printf("今天是星期二\n");
            break;
        case 3:
            printf("今天是星期三\n");
            break;
        case 4:
            printf("今天是星期四\n");
            break;
        case 5:
            printf("今天是星期五\n");
            break;
        case 6:
            printf("今天是星期六\n");
            break;
        case 7:
            printf("今天是星期日\n");
            break;
        default:
            printf("无效的天数值\n");
            break;
    }
    return 0;
}

🔸switch 语句检查变量 day 的值,并根据其值执行相应的 case 分支。由于 day 的值为3,程序将打印“今天是星期三”。如果 day 的值不在1到7之间,程序将执行 default 标签后的代码块。 

三、循环语句 💫

1、⭐️while 循环⭐️

🍀上文介绍的if语句,当条件满足的情况下,if语句后的语句执行,否则不执行。 但是这个语句只会执行一次。

❓由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 那我们怎么做呢?

⭕️在C语言中,while 循环是一种基本的循环结构,它允许你重复执行一段代码,直到指定的条件不再满足。while 循环在循环开始之前检查条件,因此它可能完全不执行循环体中的代码,如果初始条件就不满足。while 循环的语法如下:  

while (condition) 
{
    // 循环体:只要condition为真,就会重复执行的代码块
}

👉condition 是一个表达式,每次循环开始前都会对其进行求值。如果 condition 的值为真,则执行循环体内的代码块。执行完循环体内的代码后,程序会回到 while 语句处,再次检查 condition 的值,若为真则再次执行循环体中的代码,这个过程会一直重复,直到 condition 的值为假,此时循环终止,程序会继续执行循环之后的下一条语句。  

🔸举例:

//计算1到5的和:

#include <stdio.h>

int main() 
{
    int i = 1; // 初始化变量i
    int sum = 0; // 初始化总和变量
    while (i <= 5) 
     { 
        // 当i小于或等于5时循环
        sum += i; // 将i加到总和
        i++; // 递增i
     }
    printf("1到5的和是: %d\n", sum); // 输出结果
    return 0;
}

🔸初始条件满足,循环开始执行。循环体中的代码将 i 加到 sum 上,并将 i 递增。每次循环结束后,都会再次检查 i 是否小于或等于5。当 i 的值递增至6时,条件不再满足,循环终止。

1.1、🌈while 循环中的 break 

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

🔸可见输出结果是1234,说明循环只输出了四次,到第五次结束循环;

⭕️总结:

break在while循环中的作用: 在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。 

1.2、🌈while 循环中的continue 

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

​

🔸可以看到,i 进循环之后,i 不断增加,当 i 等于5时,进行了一次 continue,之后输出就没有 i 等于5的值,但之后仍然进入循环,持续输出直到满足 while 的条件为止,循环结束;

⭕️总结:

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

2、⭐️for 循环⭐️

⭕️语法: for(表达式1; 表达式2; 表达式3)

                      循环语句;

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

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

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

//使用for循环 在屏幕上打印1-10的数字。
#include <stdio.h>

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

⭕️在for循环中也可以出现break和continue,他们的意义和使用方法在while循环中是一样的,注意遇到 continue ,会跳过 continue 后面的代码,直接去循环的调整部分。

2.1、🌈for 循环的变种

int main()
{
    for (;;)
    {
        printf("hehe\n");
    }

    return 0;
}

🔸此代码for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,很容易导致问题,比如上述代码判断部分恒为真,最后输出无数次hehe,且不会停止,会一直循环。

int main()
{
    int i = 0;
    int j = 0;
    //这里打印多少个hehe?
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 10; j++)
        {
            printf("hehe\n");
        }
    }

    return 0;
}

🔸此代码包含了一个双层嵌套的 for 循环结构。外层 for 循环控制变量 i ,内层循环控制变量 j,会输出10*10=100个hehe

int main()
{
    //代码3
    int i = 0;
    int j = 0;
    //如果省略掉初始化部分,这里打印多少个hehe?

    for (; i < 10; i++)
    {
        for (; j < 10; j++)
        {
            printf("hehe\n");
        }
    }

    return 0;
}

🔸此代码最后只打印出10个hehe,这是因为 i 和 j 都省略了初始化部分,尤其是 j 省略了 j=0,这会导致第一次外循环进来的时候,j 的内循环已经循环了三次,j 已经变成10了,当 i 再次增加的时候内循环就进不去了,所以只输出了10个。

2.2、🌈for 循环与 while 循环

🔶while 循环在循环开始前检查条件,如果条件为真,则执行循环体中的代码。 

适用场景:

🔸当循环的结束条件在循环体内部动态计算时。

🔸当只需检查一个条件就决定是否继续循环时。 

🔶for 循环也用于重复执行代码,但它在循环开始前就初始化变量,并在每次循环结束时更新变量,检查条件

适用场景:

🔸当已知循环的执行次数时。

🔸遍历数组或集合等需要计次遍历的情况。

区别:

🔶初始化:for 循环将初始化、条件检查和步进操作集于一体,适合于执行已知次数的循环;while 循环在循环开始前仅检查条件,适用于未知循环次数的情况。

🔶代码结构:for 循环的代码结构集中,使得循环的初始化、条件和步进一目了然,便于阅读和管理;while 循环的这些元素可能分散在代码的不同部分,需要更多的注意力来确保逻辑正确。

3、⭐️do...while() 循环⭐️

⭕️语法: 

do

循环语句;

while(表达式);

⭕️do while循环至少执行一次,使用的场景有限,所以不是经常使用。 

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

🔸从显示结果来看,do while()循环先执行一次代码块内容,之后才进入while语句中的判断,所以输出一次10。

🔸在do while() 循环中也可以出现break和continue,他们的意义和使用方法在while循环中是一样的

 本文到此结束💞💞💞感谢大家花费宝贵的时间阅读本文章,制作不易,希望大家多多支持呀😘😘😘,如有任何问题欢迎各位大佬在评论区批评指正!!!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值