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

C语言:if-else语句

嗨,今天咱们讲讲C语言控制语句里的条件选择,主要总结下if else语句。

咱们生活里经常会有这样的场景,明天该怎么穿呢,得考虑下具体的天气。如果是晴天,温度还不错,可以穿T恤;如果是阴天,就得穿夹克,当然刮大风就得加一件风衣了。根据不同的情况,经常会有不同处理方式。编程也会遇到这样的情况,提供的数据符合目前的需求,可以实现后续的工作,如果不符合,就得处理其他的安排。所以说编程和生活其实没有界限,可以说编程来源于生活。

在C语言中,处理这种选择场景的语法叫做条件语句,条件语句有两种形式:if else和switch case。其中判断情况的条件可以罗列更为详细具体,选择情况可以根据需要叠加的语法是if else。当然switch case很好用,不过应用场景是判断情况比较多的时候,可以提高代码质量。

那么,我们来聊下怎么用,书写标准:

if (表达式){

语句块1

}else{

语句块2

}

注意啦,上面是语法规范,怎么用具体的细节在下面分析:

1. 语句块:当有若干条语句时,必须用{…}括起来。

2. 表达式:

if语句的表达式一般情况下为逻辑表达式或关系表达式。

如:

if( a == b && x == y ) {

printf(“a=b,x=y”);

}else{

printf(“a!=b, x!=y”);

}

也可以是任意类型(包括整型、实型、字符型、指针类型),表示“真”和“假”的逻辑情况。

例如:if(‘a’) printf(“%d”,’a’);

if(‘3’) printf(“OK!”);

注意:

数值在if里只有“非零”与“零”的用法;

请区分if(x=1)与if(x= =1)的不同,=是赋值符号, ==是逻辑判断符号。

当然规范的形式只适用用于条件逻辑比较单一的情况,以下是一些根据实际情况做出的一些变形形式。

1. 简化形式

if(表达式) {

语句块

}

例如:

if( x>y ) {

printf(“%d”,x);

}

2. 阶梯形式

if(表达式1) 语句块1

else if(表达式2) 语句块2

else if(表达式3) 语句块3

else if(表达式4) 语句块4

...

else 语句块n

例如:

int main(int argc, const char *argv[])

{

int a;

scanf("%d", &a);

if( a<0 ){

printf("a < 0!\n");

}else if( a == 0){

printf("a == 0!\n");

}else{

printf("(a > 0! \n");

}

return 0;

}

3. 嵌套形式

if(表达式){

if(表达式){ 语句块1 }

else{ 语句块2 }

}else{

if(表达式){ 语句块3 }

else{ 语句块4 }

}

例如:

int main(int argc, const char *argv[])

{

int a , b, c;

int max;

scanf("%d%d%d", &a, &b, &c);

if( a >= b ) {

max = a;

if( max < c ) {

max = c;

}

} else {

max = b;

if( max < c ) {

max = c;

}

}

putchar(10);

return 0;

}

这里再提一种特殊情况:

if(表达式){

语句块1;

}

if(表达式){

语句块2

}

if(表达式){

语句块3;

}

...

else{

表达式4;

}

这种情况的条件语句组合中,else要注意是后最后一if结合。

好啦,if else的用法讲到这里,多做实践应用,尝试多种场景。当然因为其可以组合的特性,到实际实践中组合形式很自由,可能会有迷惑性,其实本质很简单,就是上面的几种语法,不要被骗了,要仔细辨别哦。

对嵌入式物联网感兴趣的小伙伴,可以多了解一下相关信息。(看过来)

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

相关文章:

  • C语言---函数
  • 【JVM】什么是双亲委派机制?
  • Vulkan Tutorial 7 纹理贴图
  • LinkedBlockingQueue阻塞队列
  • 面试-Redis 常见问题,后续面试遇到新的在补充
  • 2023年上半年数据库系统工程师上午真题及答案解析
  • 设计模式概念
  • arcpy批量对EXCE经纬度L进行投点,设置为wgs84坐标系,并利用该点计算每个区域内的核密度
  • Yolov5训练自己的数据集
  • Bert+FGSM中文文本分类
  • 爬楼梯问题-从暴力递归到动态规划(java)
  • 浏览器如何验证SSL证书?
  • Linux :: 【基础指令篇 :: 文件及目录操作:(10)】:: ll 指令 :: 查看指定目录下的文件详细信息
  • Java字符集/编码集
  • Apache配置与应用
  • API自动化测试【postman生成报告】
  • 探索OpenAI插件:ChatWithGit,memecreator,boolio
  • linux irq
  • 串口流控(CTS/RTS)使用详解
  • kube-proxy模式详解
  • 汽车EDI:如何与Stellantis建立EDI连接?
  • 【SCI征稿】1区计算机科学类SCI, 自引率低,对国人友好~
  • Vue.js优化策略与性能调优指南
  • HEVC环路后处理核心介绍
  • 从组件化角度聊聊设计工程化
  • apache的配置和应用
  • Buf 教程 - 使用 Protobuf 生成 Golang 代码和 Typescript 类型定义
  • Java 锁 面试题(ReentrantLock、synchronized)
  • Python中的缩进是什么意思?
  • 2023年9月数学建模:最小二乘优化、曲线拟合与函数逼近