C语言的分支和循环(1)

点赞再观看,养成好习惯!

前言:C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。 例如我们可以使⽤ ,使⽤ for 、 whif 、 switch 实现分⽀结构while 、 do while 实现循环结构

目录

1.if 

1.1if语句 

1.2else 

1.3嵌套if 

1.4else问题 

2.关系操作符 

3.逻辑操作符&& , || , !


1.if 

1.1if语句 

if语句的语法如下: 

if(表达式)

{

        语句

表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ ,在C语言中,0表示假,非零表示真。也就是说表达式的结果是0;语句不执行,表达式的结果不是0,表达式执行。如下面这个例子:

#include<stdio.h>

int main()

{

        int a = 0;

        if(a + 1)

                printf("执行\n");

        return 0;

}  

 运行结果:执行

1.2else 

 如果一个数不是大于0,就是小于等于0了。使用if语句判断完大于0,还要判断是否小于等于0,就可以用到else语句了,如下:

#include<stdio.h>
int main()
{
    int a = 0;
    scanf("%d", &a);
    if (a > 0)
        printf("大于0\n");
    else
        printf("小于或等于零\n");
    return 0;

在上面这样的写法,如果执行,if和else都只能有效执行下一行语句,如果if或else要执行多条语句,需要用到大括号{},使用方法如下:

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d", &a);
    if (a > 0)
    {
        printf("a大于0\n");
        b = 1;
    }
    else
    {
        printf("a小于0\n");
        b = -1;
    }
    return 0;

1.3嵌套if 

if, else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断else if()。 ⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码: 

#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    if (num == 0)
        printf("输⼊的数字是0\n");
    else if (num > 0) //这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
        printf("输⼊的数字是正数\n");
    else
        printf("输⼊的数字是负数\n");
    return 0;
}

1.4else问题 

让我们来看一下面这个代码 

 #include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
        else
            printf("haha\n");
    return 0;

在我前面写的代码,else总是和千面的if对齐,但是,其实else 总是跟最接近的 if 匹配

也就是说,上面的代码if(a==1)没有执行语句,if(b==2)与下面的else匹配,如果要让if(a==1)与else匹配,可以修改一下代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
    {
        if (b == 2)
            printf("hehe\n");
    }
        else
            printf("haha\n");
    return 0;

用一个大括号括起,这样,if(a==1)就和else匹配上了 

2.关系操作符 

C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称 为“关系运算符”(relational operator),主要有下⾯6个 

>⼤于运算符 

< ⼩于运算符

>= ⼤于等于运算符

<= ⼩于等于运算符

== 相等运算符

!= 不相等运算符

a == b;
a != b;
a < b;
a > b;
a <= b;
a >= b; 

这里需要注意的是:

1.相等运算符==要和赋值运算符=区分 

2.多个运算符不宜连用

i > j > k 

这样写法可能达不到判断效果,比如下面这个代码 

#include<stdio.h>
int main()
{
    int i = 3;
    int j = 2;
    int k = 1;
    if (i > j > k)
        printf("成功\n");
    else
        printf("失败\n");
    return 0;

为什么会失败,因为i > j答案是肯定的,返回1,1 > 1答案是否定的,如果要满足判断i大于j大于k 

需要这样写: 

if (i > j && j > k) 

使用与&&操作符连起来 

3.逻辑操作符&& , || , !

也就是我们刚刚提到的操作符

! :逻辑取反运算符(改变单个表达式的真假) ,也被我们称作不等于

&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假 )

|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)

 和逻辑操作符相关的重要的知识点有:短路

这里的短路其实是说: 

或运算符一端为真,机器就不再判断了,肯定为真

与运算符一端为假,机器就不再判断了,肯定为假

  • 26
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值