2c语言程序设计_C语言零基础入门—选择结构程序设计-2

本文介绍了C语言中的逻辑运算符,包括&&、||和!,并详细解释了它们在条件判断中的作用。此外,还探讨了break和continue在流程控制中的应用,break用于跳出最近的流程控制语句,而continue则用于结束当前循环的一次迭代。通过示例代码展示了它们在switch语句中的实际效果。
摘要由CSDN通过智能技术生成

54b64f456d36c582225d87a0a23504d4.png

C语言零基础入门—10.选择结构程序设计-2

任务:
​ 1- 逻辑表达式;
​ 2- break与continue的区别;

1. 逻辑表达式

1.1 引入

​ 我们在讲解逻辑表达式之前,需要系统的讲解一下C语言里边的运算符与表达式

1.1.1 概念

  • 运算符

​ 我们在生活中常用的加,减,乘,除都被称之为运算符,但是在编程语言中,仅仅这些是肯定不够用的。所以又定义了一些其他的运算符,当运算符多了之后,为了区分方便,就给运算符进行了分类(~~先不说多少类,下边再说~~)。

总结:运算符就是对数据进行加工处理的操作符号。

  • 表达式就是把数据用运算符结合起来形成的式子。

1.1.2 运算符的分类

​ C语言中的运算符有很多,非常多。C语言中,除了控制语句 ~~(if,switch等)~~ 和输入输出以外,其他的基本操作都可以作为运算符进行处理。

  • 分类:暂且介绍几种常用的。
  1. 算术运算符:+,-,*,/,%,++,--
  2. 关系运算符:>,<,==,>=,<=,!=
  3. 赋值运算符:=,+=,-=,*=,/=
  4. 逻辑运算符:!,&&,||
  5. 等等。

1.2 运算符介绍

1.2.1 算术运算符

​ 算术运算符就是我们最常见的数学中的计算符号而已,比如:加减乘除,用法与数学一致。

​ 但是C语言中又增加了三个特殊的符号。

  • 运算符 ++
    这个被叫做 自增 符号,它的作用如下:
int a = 1;
a++;   // a++ 就等同于 a=a+1 (就是加1)
//此时a的值就是2
  • 运算符 --
    叫做 自减 符号,就是 减1
  • 运算符 %
    他被叫做 求余 符号,它的作用就是求出两个数相除之后产生的余数。
:栗子1.
    int a = 5;
    int b = 2;
    int c = a % b;  //此时c的值是1
//因为5除2余数为1

:栗子2.
    int a = 10;
    int b = 3;
    int c = a % b;  //此时c的值是1
//因为10除3余数为1

:栗子3.
    int a = 1;
    int b = 3;
    int c = a % b;  //此时c的值是1
//因为1除3余数为1

​ 第三个栗子可能会懵,大家想:1除3除不尽对吧,所以商为0,余数为1了。

​ 大家记住一句话:小数除大数,余数为小数本身

1.2.2 关系运算符

​ 这个就是比较数据之间的大小关系的运算符号而已,所以就是,大于,小于,大于等于这些了,我们需要注意的就是他们在C语言中长什么样子就好了而已。

​ 还有值得一提的就是以下两个了:

:第一个:==
    这个符号的意思就是 等于。
    这个与我们的习惯不同,我们日常生活中的等于是=,但是在C语言中符号=有其他用处了(被叫作 赋值)。

:第二个:!=
    他的意思就是 不等于。

1.2.3 赋值运算符

​ 其实赋值运算符我们在前边已经用过很多次了,只是没有给大家说明白而已,大家都当作理所当然了。

int a = 3;  //这个意思就是:把3赋值给变量a
int b = a;  //这个意思就是把变量a的值赋给变量b

​ 我们需要区分的就是,赋值(=)等于(==) 是不同的,等于(==)是用来判断两个值是否相等的,赋值(=)是用来把一个值 赋给另一个变量。

​ 这个里边还有一些其他形式的赋值语句:

a+=b;    等同于: a=a+b;
a-=b;    等同于: a=a-b;
a*=b;    等同于: a=a*b;
a/=b;    等同于: a=a/b;
还有一些其他类似的表达式,都可以这样子用,大家自己根据需要使用。

1.2.4 逻辑运算符

​ 终于讲到我们的重头戏了,我们说到逻辑运算符,我们需要记住一点就可以了,逻辑的值只有两种情况:逻辑真,逻辑假

逻辑真的意思就是得到的结果是true,逻辑假的意思就是得到的结果是false。

:第一个:&& (逻辑与)
    他的作用就是&&表达式前后都成立(都为真)的时候才返回true

栗子:
    if(a==3 && b==4){
        printf("成立");
    }

解读:上述程序的意思就是,只有当a的值是3,“并且”b的值是4的时候,才输出成立

拓展:C语言内部会先判断&&表达式前边的式子是否成立,也就是说,当a的值不是3的时候,后边就不会在判断了,而是直接返回false。
:第二个:|| (逻辑或)
    (按住shift键,再按enter键上边那个键就是了)

    他的作用就是||表达式前后只要有一个成立(只要有一个为真)的时候就返回true

栗子:
    if(a==3 || b==4){
        printf("成立");
    }else{
        printf("不成立");
    }

解读:上述程序的意思就是,只要 a的值是3,“或者”b的值是4的时候,就输出。

执行结果:
    1. 当a的值是3,b的值随意: 输出 成立。
    2. 当a的值随意,b的值是4: 输出 成立。
    3. 当a的值不是3,b的值不是4: 输出 不成立。

拓展:C语言内部会判断||表达式前后的所有值,才可以得到最终结果。
:第三个:!(逻辑非)
    他的作用就是把true变成false,把false变成true。
栗子:
    if( !(a==3) ){
        printf("成立");
    }

解读:上述程序的意思就是,只要 a的值 不是3 才输出成立。

1.3 不得不提的优先级

​ 这里说的优先级也就是数学中常用的先算那一部分的事情:

:栗子:
    a+b*c/d-e  // 这个式子的优先级就是先算 b*c,再算除法,再算加法,再算减法。

​ 在我们的C语言中,也有优先级,但是我现在说再多,大家也记不住,所以记住一句话:当你写出一个比较复杂的计算式的时候,用括号与空格来控制谁与谁先计算。

:栗子:
    :a+b*c/d-e  //这个看着不是很明了
    :a + (b*c)/d - e  //适当的使用空格,括号,不就完了嘛。

2. break与continue

​ 这两个的作用是让流程控制语句终止的,但是终止的内容是不一样的。

break : 是结束最接近break的一个流程控制语句。 
continue : 是结束循环控制语句 中的某一次。

2.1 程序示例

2.1.1没有终止语句的程序

​ 在演示break与continue之前我们先演示下不具有终止语句的程序。

#include<stdio.h>

void main(){

    char score;
    printf("请输入A,B,C,D中的某一个值:");
    scanf("%c",&score);

    switch(score){
        case 'A' : printf("你输出的内容是-1- %c n",score);

        case 'B' : printf("你输出的内容是-2- %c n",score);

        case 'C' : printf("你输出的内容是-3- %c n",score);

        case 'D' : printf("你输出的内容是-4- %c n",score);

        default: printf("输入有误,程序结束!n");
    }
}

​ 这一段程序就是把break去掉之后,的演示。

  • 结果展示:

86d01ba9e90f6c00da8d62974ecab454.png

​ 当我们输入某一个等级之后,他会把从匹配等级处开始的 下面所有等级的语句都执行一次。这是switch语句的一个特性。所以必须要有终止语句。

2.1.2 break

#include<stdio.h>

void main(){

    char score;
    printf("请输入A,B,C,D中的某一个值:");
    scanf("%c",&score);

    switch(score){
        case 'A' : printf("你输出的内容是-1- %c n",score);
            break;
        case 'B' : printf("你输出的内容是-2- %c n",score);
            break;
        case 'C' : printf("你输出的内容是-3- %c n",score);
            break;
        case 'D' : printf("你输出的内容是-4- %c n",score);
            break;
        default: printf("输入有误,程序结束!n");
    }
}
  • 运行结果:

5542ef74beb224f2a52cdf83be6393c5.png

​ 当我们输入每一个等级之后,只要判断到有这个等级的时候,就会终止往下继续判断。这个终止的实现就是每一个case后面的break起到的作用。

​ break : 是结束最接近break的一个流程控制语句。 意思就是:当执行到break的时候,就结束掉距离break最近的一个流程控制语句,往break上面去找就是switch了,所以就把switch结束掉。

2.1.3 continue

​ 这个我就不举程序的例子了,因为我们还没讲到循环。

​ continue : 是结束一个循环控制语句 中的某一次。 意思就是:我们循环输出的时候,其中有一次的结果我们不想输出,就可以使用continue不让他输出,但是不影响循环中的其他输出。(~~不像break会结束掉整个循环程序~~)


3. 结束

​ 至此,选择程序设计就讲完了,布置一个作业。

  • 作业:编写程序,当我们输入某个年份的时候,会得出这个年份是闰年还是平年。

公众号:小小猿笔记

f0b5f8b241f6546ea74480d7e39d33ef.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值