C语言中的分支循环语句(分支语句)

        在c语言中,包括了顺序结构,选择结构,循环结构。而在本篇,咱们来好好谈谈选择结构(分支)与循环结构(循环)两种相关的语句以及用法。

        本文将会介绍: if()   switch() 这两种分支语句,

        while()do while ()for(),三种循环语句,

        两个控制语句的用法:break       continue

一:什么是语句?

        语句 是 计算机程序中的最小执行单位,由一组指令的组合来实现某种特定的功能。而

二:语句的分类:

        而在c语言中,语句分为以下五种:

2.1:表达式语句

        表达式语句可以包含一个多个表达式,并且通常以分号结尾。

        表达式语句的主要目的是执行表达式。相当于main函数中的语句(指接下来说的四种语句)

2.2:函数调用语句

        函数调用语句 是一种使用函数的方式。例如:


printf("hello world"); //调用stdio中的printf函数,属于函数调用语句

int add(int x,int y){
return x+y;
}
add(5,4);//调用自创的函数,也属于函数调用语句

        在这个例子中,add函数名,5和3是 实参,它们被传递给add函数。函数调用语句的执行将导致函数被调用,并将返回值返回给调用语句的位置。而 printf 这个 函数 是在 stdio 库中,所以在开头要加上 #include <stdio.h>stdio 库引用进来。

        函数调用语句是程序中常见的重要语句之一,它允许程序在需要时将控制权传递给其他代码,从而实现程序的模块化和代码重用。

2.3:控制语句

        控制语句 是程序中用于 控制程序流程 的语句,包括本文将要讲述的 条件语句循环语句 跳转语句。它们可以根据条件决定程序的执行路径,或者循环执行一段代码,或者跳过一段代码直接进入到程序的其它部分。

        掌握好控制语句可以使程序的逻辑更加清晰,也可以提高程序的效率和灵活性。

2.4:复合语句

        复合语句 是由 一个 多个 简单语句组成的语句块,常用花括号  { }  将多个语句组合在一起构成复合语句。

        复合语句 可以作为 顺序结构、选择结构和循环结构的代码块。例如,以下是一个包含两个简单语句的复合语句:

{
    int a = 10;
    a++;
}

        在此例中,我们使用了一个花括号将两个简单语句组成了一个复合语句。该复合语句包含了两个语句:

        第一个语句创建了一个 int 类型的变量 a 并将其初始化为 10。

        第二个语句将 a 的值加 1。

        在一个复合语句中,通常需要在最后一个语句的后面加上一个分号来结束该语句块。

2.5:空语句

        空语句 是指没有任何实际作用的程序语句,通常用于语法上的需要或编程调试中的占位符。在大多数编程语言中,空语句通常使用分号表示。例如,在C语言中,分号表示一个空语句:

//代码一
a+b=3;
a*b=23;
a-b=2;

//代码二
a + b = 3;
a * b = 23;
a - b = 2;

        不难看出,代码二的观赏性要大于代码一。而对于代码二中的空格,就是所谓的空语句。

以上,就是语句的分类。接下来将为大家讲解分支语句与循环语句。

三:分支语句(选择语句)

        分支语句(选择语句)是被分到 选择结构 里面的。接下来,我将为大家讲解其中的 if()语句与switch语句。

3.1 if()选择语句

        if()语句的意思无非就是来判断一件事的两个选择(是或非)。举个例子:你在水果店里面选购水果,如果把这个过程细分一下,无非就是要与不要这两个选择。比如看到苹果,选择要还是不要,要买苹果就把苹果装进袋子里,不要就走向下一个水果的地方,再次选择,以此类推。

        以上的场景,在c语言中就和if()选择语句的逻辑是类似的。我们在if()语句中,条件:0位假,非0为真。这个可以这么理解:你选择要卖苹果,那么你买苹果这件事情发生了,那么就是条件为真。相反,你没有选择买苹果,那么买苹果这件事情没有发生那么就是条件为假

        在理解了if()语句的运行逻辑,那我们该怎么用它呢?

3.1.1 if()语句的语法结构

        通常情况下,可以分为三类:

第一类:

if(判断表达式语句

第二类:

if(判断表达式语句

else 语句

第三类:

if(判断表达式语句

else if(判断表达式语句

else 语句

不难发现,这中间引用了两个新的函数名:else:else if()

        else :这个函数名的用途是给予if()条件为假时所执行的语句。通俗来讲,if(条件)中条件为就会执行else : 后面的语句。

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

//这里将用代码来说明这个现象
int x = 1, j=12;
if(x==1) j++;// 1
if(x+1==1) j--;// 2
else     j=0;

在这个代码片段中,else 会和 2 处的if进行匹配。这里推荐读者使用编译器试一下,看看多个 else 与单个 if 会擦出什么样的火花。

        如果前面的if()执行,则会跳过所有的else与else if()。

        else if(): 这个函数名是在 if() 条件为假时再次判断条件。例如

if(条件 1

else if(条件 2

        条件1 在 if() 中为假,转而去判断 else if() 中的 条件2

这里注意一点:我们不难发现,else else if()语句中都有 “else” 这个语句。所以,他也遵循上文所提到的 else的匹配 这一原则。

3.1.2 复合语句

        当然,我们也可以在if()后面写多条语句,即复合语句。我们常用 “{}”来放入复合语句,我们称这个部分为代码块。

举个例子:

#include <stdio.h>  
  
int main() {  
    int num1, num2, temp;  
      
    printf("请输入第一个数字:");  
    scanf("%d", &num1);  
      
    printf("请输入第二个数字:");  
    scanf("%d", &num2);  

    //判断两个数字的大小

    if(sum2 > sum 1){

    // 交换两个数字的值  
    temp = num1;  
    num1 = num2;  
    num2 = temp;  
      }
    printf("%d>%d\n", num1,sum2);  
      
    return 0;  
}

在此处,我们就用if()来判断前者是否小于后者。若是,则交换两个数字的值。

交换值 这些代码就是一个复合语句。并用“{}”来确定复合语句的活动范围(简单来说“{”是开始复合语句,“}”是结束复合语句)。

复合语句的作用:
1、在程序设计中复合语句被看成是一条语句,而不是多条语句。
2、在只能使用单条
3、这里只能写一条指令,而用复合语句就可以满足一条指令的限制,而执行多条指令。

3.2 switch()语句

        

switch()语句基本运行原理(T表真,F表假)

switch( 整形表达式 ) :其中的 整形表达式 可以理解为: 条件 。这样更方便在下列一群 case 中去寻找 “入口” 。值得注意的是: 整形表达式  必须是 整形数据 ,输入浮点型等其他类型的数据则会报错。

case 整形常量表达式 : 此处的 整形常量表达式 与switch语句中的 整形表达式 类似,区别是前者是常量(即不可改变的量),后者是变量(可改变的量)。 而设置case 就是为 整形表达式 开放攻选择的 “入口”(稍后会以代码举例)。

default : 结束switch语句,即“出口”。可以写在任何一个case语句可以出现的位置,当 switch 表达式的值不匹配所有 case 的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中有且仅有一条default语句。


而下面一个就是用switch语句来实现判断是否为工作日的代码:

#include <stdio.h>  
  
int main() {  
    int day;  
    printf("请输入星期数(1-7):");  
    scanf("%d", &day);  //日期
    //以日期作为 条件 执行 switch 语句
    switch(day) {  
        case 1:  
        case 2:  
        case 3:
        case 4:  
        case 5:  
            printf("工作日\n");  //case 1 —— case 5 共用的部分
            break;  //作用于default类似,即“出口”,不在向下运行
        case 6:
        case 7:  
            printf("今天是星期日\n");  
            break;  
        default:  
            printf("输入有误,请输入1-7之间的数字\n");  
            break;  
    }  
  
    return 0;  
}

假设我输入3,那么swtich语句中的day值就会为3。之后会逐一向以下case后面的常量去判断。当case 3 执行成功后,会以case 3 这条语句为入口,执行下面所有的语句(包括case )直至switch语句块结束或者中途碰到 break 或者default。

运行结果:

由于篇幅较长,下一篇为大家介绍循环语句

——————————————————————————————————————————————————————————————————————————————————————

下一章指引:C语言中的分支循环语句(循环语句)-CSDN博客

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值