分支语句ifelse课堂笔记总结

    C语言是结构化的程序设计语言

    日常生活中,语言有三种结构,分别是顺序结构,选择结构和循环结构。而选择结构和循环结构也是重中之重。

    在C语言中,由一个分号隔开的就是一条语句。补充,C语言中0为假,非0为真。

       分支语句(选择结构)(if;switch)

     一、if的语法结构

1、if(表达式)————若此处为假,则语句不执行

           语句;

int main()
{
    int age = 10;
    if(age >= 18)
        printf(“成年\n”);
    return 0
}

结果为不执行。

2、if(表达式)

           语句1;

      else

           语句2 ;       

int main()
{
    int age = 20
    if(age >= 18)
        printf(“成年\n”);
    else
        printf(“未成年\n”);
    return 0
}

 但是要注意的是

int main()
{
    int age = 20
    if(age >=18)
        printf(“成年\n”);
    else   
        printf(“未成年\n”);
        printf(“不能谈恋爱\n”);
    return 0
}

如果是这样,结果会出现成年和不能谈恋爱,为什么呢会这样?

  因为if——else只能控制一条语句,而不能谈恋爱对于else属于第二条语句,所以不能谈恋爱可以正常被执行。

  那么,如果条件成立,要执行多条语句,该如何使用代码块呢?这时候,需要用到{}

int main()
{
    int age = 20
    if(age >=18)
        printf(“成年\n”);
    else
    {    
        printf(“未成年\n”);
        printf(“不能谈恋爱\n”);
    }
    return 0
}

3、当出现多分支的时候,我们常用

if(表达式1)

     语句1
else if(表达式2)

     语句2
else

      语句3

int main()
{
    int age = 60;
    if(age < 18)
        printf(“少年\n”);
    else if(18 <= age < 26)
        printf(“青年\n”);
return 0
}

如果去执行这个代码,会出现青年这个结果,很奇怪,为什么会出现这个结果呢。

其实错就错在else if(18 <= age < 26),我们来分析一下:

  首先,age=60,满足18 <= age的条件,满足为真,真则为1,所以<左边为1,而1<26成立,所以最终打出青年这个结果。那么,我们把这个代码优化一下:

int main()
{
    int age = 60;
    if(age < 18)
        printf(“少年\n”);
    else if(age >= 18 && age < 26)
        printf(“青年\n”);
    else if(age >= 26 && age < 40)
        printf(“壮年\n”);
    else if(age >= 40 && age < 60)
        printf(“中年\n”);
    else if(age >= 60 && age <= 100)
        printf(“老年\n”);
    else
        printf(“名人\n”);
        return 0
}

关于悬空else

int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
         if(b == 2)
             printf(“hehe\n”);
    else
         prinff(“haha\n”);
    return 0
}

最终的结果是不打印,因为else是与最近的if匹配,而int a = 0不满足if (a == 1),所以指令不会执行下去。

if书写形式的对比

//代码1
if(condition){
    return x;
}
return y;

//代码2
if(condition)
{
    return x;
}
else
{
    return y;
}

练习

1、判断一个数是否为奇数

2、输出1-100之间的奇数

1、
int main
{
    int num = 0;
    scanf(“%d”,&num);
    if(num%2 == 1)
       printf(“是\n”);
    return 0;
}

2、
int main
{
    int i = 0;
    for{i = 1,i <= 100;i++}
    {
         if(i%2 == 1)
             printf(“%d”,i); 
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值