当前位置: 首页 > news >正文

C语言中关于if else的理解

if else我们可以理解为

if(条件1)                                //如果条件1成立

        语句1;                        //执行语句1

else                                      //如果条件1不成立

        语句2;                          //执行语句2

这是一个经典的if else双分支语句,那么除了双分支外,if else还有多分支语句,本文重点讲解双分支和多分支的概念 

双分支

#include <stdio.h>
int main() {int age=10;if(age>=18)printf("成年\n");else printf("未成年\n");return 0;
}

先看代码,由于age<18,所以if里面的条件不成立,就执行语句2。

那么如果我们要给这个程序加上一个未成年不能喝酒的条件呢?

#include <stdio.h>
int main() {int age=20;if(age>=18)printf("成年\n");elseprintf("未成年\n");printf("不能喝酒");return 0;
}

这样写是错误的,当我们没有分组else下面的语句时,else默认只包含下面的第一条语句,所以现在虽然age=20,但打印的结果是这样的

那么我们的解决方法是:

1、在else下面的语句加上大括号

#include <stdio.h>
int main() {int age=20;if(age>=18)printf("成年\n");else {printf("未成年\n");printf("不能喝酒");}return 0;
}

2、else下面的语句结束时用逗号而非分号

#include <stdio.h>
int main() {int age=20;if(age>=18)printf("成年\n");elseprintf("未成年\n"),    //注意这一行最后的分号被改为逗号了printf("不能喝酒");return 0;
}

这样就能有效的解决我们在if else当中遇到多条要执行的语句并可以让它们在else当中一一对应的情况了。

多分支

if(条件1)                                 //如果条件1成立

        语句1;                         //执行语句1

else  if(条件2)                        //如果条件1不成立,执行条件2

        语句2;                           //执行语句2

else                                      //如果条件1和条件2都不成立

        语句3;                          //执行语句3

#include <stdio.h>
int main() {int age=20;if(age<18)printf("少年\n");else if(age>=18 && age<=30)printf("青年\n");else if(age>30 &&  age<=50)printf("中年\n");elseprintf("老年\n");return 0;
}

需要注意的时,当我们在写" if(age>=18 && age<=30) "的时候不能写成" 18<=age<=30 ",在c语言中如果写成这样,那么程序运行的时候就会误判

                                                        age=60
18<=age(60)为真,输出1
age(1)<=30为真,输出1

所以虽然age=60,但程序依然认为我们是" 青年 "

http://www.lryc.cn/news/268237.html

相关文章:

  • Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)
  • 华纳云:怎么实现Linux主机ssh无密码登录
  • 模型树实操
  • html table+css实现可编辑表格
  • c语言:计算1+2+3……+n的和|练习题
  • Yolov5水果分类识别+pyqt交互式界面
  • 正式环境和sandbox中的RecordTypeId不一样应该怎么办
  • 7种常见的网络安全设备及其功能
  • vue3实现pinia仓库状态持久化
  • Node.js(三)-模块的加载机制
  • 函数
  • 第四周:机器学习知识点回顾
  • 韩版传奇 2 源码分析与 Unity 重制(一)服务端 TCP 状态管理
  • python编程(2)之灯光秀的按钮
  • pandas将dataframe列中的list转换为多列
  • 小巧的Windows Memory Cleaner内存清理工具-释放内存,提升电脑的性能-供大家学习研究参考
  • STM32F072 CAN and USB
  • 卷积神经网络基础与补充
  • File Inclusion(Pikachu)
  • 【Redis刨析】知识图谱的构建与实现
  • html学习笔记 标题、段落、换行、列表、超链接、图片、表格
  • 汽车项目管理
  • Tg-5511cb: tcxo高稳定性+105℃高温
  • Linux 命令 ifconfig 全面解析!
  • 00-Git 应用
  • 安全运维是做什么的,主要工作内容是什么
  • nodejs+vue+ElementUi大学新生入学系统的设计与实现1hme0
  • Unity-序列化和反序列化
  • 如何将语音版大模型AI接入自己的项目里(语音ChatGPT)
  • 鸿蒙列表,item组件封装传参问题?@ObjectLink 和@Observerd