Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C 语言教程:条件和 if...else 语句

C 语言教程:条件和 if...else 语句

原创
作者头像
小万哥
发布于 2023-12-25 11:07:38
发布于 2023-12-25 11:07:38
41500
代码可运行
举报
文章被收录于专栏:程序人生丶程序人生丶
运行总次数:0
代码可运行

C 语言中的条件和 if...else 语句

您已经学习过 C 语言支持数学中的常见逻辑条件:

  • 小于:a < b
  • 小于或等于:a <= b
  • 大于:a > b
  • 大于或等于:a >= b
  • 等于:a == b
  • 不等于:a != b

您可以使用这些条件来根据不同的决策执行不同的操作。

C 语言具有以下条件语句:

  • 使用 if 来指定要执行的代码块,如果指定的条件为真
  • 使用 else 来指定要执行的代码块,如果相同的条件为假
  • 使用 else if 来指定要测试的新条件,如果第一个条件为假
  • 使用 switch 来指定要执行的许多备选代码块

if 语句

使用 if 语句指定要执行的代码块,如果条件为真。

语法

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
if (condition) {
  // 要在条件为真时执行的代码块
}

请注意,if 是小写字母。大写字母(If 或 IF)会生成错误。

在下面的示例中,我们测试两个值以找出 20 是否大于 18。如果条件为真,则打印一些文本:

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
if (20 > 18) {
  printf("20 is greater than 18");
}

我们也可以测试变量:

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int x = 20;
int y = 18;
if (x > y) {
  printf("x is greater than y");
}

例子解释

在上面的示例中,我们使用两个变量 xy 来测试 x 是否大于 y(使用 > 运算符)。由于 x 为 20,y 为 18,并且我们知道 20 大于 18,因此我们在屏幕上打印“x is greater than y”。

else 语句

使用 else 语句指定要执行的代码块,如果条件为假。

语法

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
if (condition) {
  // 如果条件为真,则执行的代码块
} else {
  // 如果条件为假,则执行的代码块
}
代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int time = 20;
if (time < 18) {
  printf("Good day.");
} else {
  printf("Good evening.");
}
// 输出 "Good evening."

例子解释

在上面的示例中,时间 (20) 大于 18,因此条件为假。因此,我们移动到 else 条件并打印到屏幕“Good evening”。如果时间小于 18,则程序将打印“Good day”。

else if 语句

使用 else if 语句指定新的条件,如果第一个条件为假。

语法

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
if (condition1) {
  // 如果条件1为真,则执行的代码块
} else if (condition2) {
  // 如果条件1为假且条件2为真,则执行的代码块
} else {
  // 如果条件1为假且条件2为假,则执行的代码块
}
代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int time = 22;
if (time < 10) {
  printf("Good morning.");
} else if (time < 20) {
  printf("Good day.");
} else {
  printf("Good evening.");
}
// 输出 "Good evening."

例子解释

在上面的示例中,时间 (22) 大于 10,因此第一个条件为假。下一个条件,在 else if 语句中,也是假的,因此我们移动到 else 条件,因为 condition1condition2 都是假的 - 并打印到屏幕“Good evening”。

但是,如果时间是 14,我们的程序会打印“Good day”。

另一个例子

此示例展示了如何使用 if..else 找出数字是正数还是负数:

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int myNum = 10; // 这是一个正数还是负数?

if (myNum > 0) {
  printf("The value is a positive number.");
} else if (myNum < 0) {
  printf("The value is a negative number.");
} else {
  printf("The value is 0.");
}

C 语言中的简洁 if...else 语句(三元运算符)

除了标准的 if...else 语句之外,C 语言还提供了一种简写形式,称为三元运算符,因为它由三个操作数组成。它可以将多行代码替换为一行,通常用于替换简单的 if...else 语句。

语法

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
variable = (condition) ? expressionTrue : expressionFalse;

示例

以下代码用标准的 if...else 语句判断时间是否晚于 18 点:

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int time = 20;
if (time < 18) {
  printf("Good day.");
} else {
  printf("Good evening.");
}

使用三元运算符可以简写为:

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
int time = 20;
(time < 18) ? printf("Good day.") : printf("Good evening.");

两种方式都将输出 "Good evening."。

优点

三元运算符的优点在于简洁,可以将多行代码替换为一行,使代码更易读。

缺点

三元运算符的缺点在于可读性下降,尤其是嵌套使用时,可能会使代码难以理解。

使用建议

建议在简单的 if...else 语句中使用三元运算符,以简化代码。在复杂的情况下,建议使用标准的 if...else 语句,以保持代码的可读性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
技术汇总:第十五章:MyBatisGenerator数据层代码生成
第一步:pom.xml <dependencies> <dependency> <groupId>com.macro.mall</groupId> <artifactId>mall-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!-- MyBatis 生成器 --> <dependen
Java廖志伟
2022/09/28
1980
mybatis逆向生成java代码_mybatis生成
假如一张表有数百个字段,那么手动去写实体类的话就比较麻烦,而且容易出错。
全栈程序员站长
2022/09/24
7610
mybatis逆向生成java代码_mybatis生成
利用mybatis逆向工程生成代码
在做项目过程中,当面对很多表时,手动编写Mapper.xml、Mapper.java和pojo无疑是要人命,还容易出错,导致对数据库操作时各种异常。这就陷入了写bug,改bug的旋涡。
我的小碗汤
2018/08/22
8670
利用mybatis逆向工程生成代码
Spring·Mybatis 逆向代码生成
resources/generator/generatorConfig.xml 文件如下:
数媒派
2022/12/01
3740
技术汇总:第十五章:MyBatisGenerator数据层代码生成
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120534957
马克社区
2023/01/05
2460
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
最近一直在更新《Java 成长计划》这个专栏,主要是 Java 全流程学习的一个记录,目前已经更新到 Java 并发多线程部分,后续会继续更新;而今天准备开设一个全新的专栏 《EfficientFarm》。
JavaBuild
2024/05/27
9530
Mybatis逆向工程的2种方法,一键高效快速生成Pojo、Mapper、XML,摆脱大量重复开发
9.2MySQL@windows安装、卸载、常见报错
https://dev.mysql.com/downloads/installer/
itjim
2020/03/03
1.8K0
9.2MySQL@windows安装、卸载、常见报错
[springboot 开发单体web shop] 2. Mybatis Generator 生成common mapper
我们可以看到一行配置内容:<properties resource="generator/config.properties"/>,这里是为了将我们的数据库连接、账号等信息外置,配置内容如下:
Isaac Zhang
2019/11/07
7280
[springboot 开发单体web shop] 2. Mybatis Generator 生成common mapper
MySQL 8.0版本连接报错:Could not create connection to database server.
 准备搭建一个Spring Boot 组合mybatis的项目,数据库采用的是MySQL 8.0.11按照以往的配置,使用插件mybatis-generator-maven-plugin生成代码时,一直报错Could not create connection to database server.如下:
hbbliyong
2018/12/13
5.4K0
MySQL 8.0版本连接报错:Could not create connection to database server.
准备搭建一个Spring Boot 组合mybatis的项目,数据库采用的是MySQL 8.0.11按照以往的配置,使用插件mybatis-generator-maven-plugin生成代码时,一直报错Could not create connection to database server.如下:
星哥玩云
2022/08/17
4520
Spring整合Mybaties
如果实体类的熟悉名和数据库表的字段名不一致,有一种简单的方法就是给字段名取一个别名。这样不就保持了一致
全栈程序员站长
2021/07/13
3310
解决SQLyog连接MySQL8时报错:错误号码2058
使用SQL8.0的用户在使用MySQLyog连接时,SQLyog连接MySQL8时报错:错误号码2058。
全栈程序员站长
2022/11/01
2.4K0
解决SQLyog连接MySQL8时报错:错误号码2058
解放双手!MyBatis官方代码生成工具给力!
MyBatis Generator(简称MBG)是MyBatis官方提供的代码生成工具。可以通过数据库表直接生成实体类、单表CRUD代码、mapper.xml文件,从而解放我们的双手!
macrozheng
2021/01/06
1.2K0
解放双手!MyBatis官方代码生成工具给力!
Docker从入门到精通(十一)
docker-compose 实战使用,集成编排Redis、MySQL、微服务,服务容器化
小土豆Yuki
2023/09/02
2450
Docker从入门到精通(十一)
Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
  Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱。
bear_fish
2018/09/19
2.2K0
Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
tkmybatis逆向工程(java数据类型强制转换方法)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129326.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/30
6020
tkmybatis逆向工程(java数据类型强制转换方法)
2. 获取数据库连接
在上一章节中,我们虽然认识了 JDBC 的基本概念,以及完整的执行入门示例。但是对于程序中的每个操作还是比较陌生的,所以在后续的篇章中,我再将其拆分,逐步进行讲解。
Devops海洋的渔夫
2022/01/17
1.5K0
2. 获取数据库连接
Docker安装MySql-挂载外部数据和配置
在上一篇中《在CentOS7中使用Docker安装MySql》中介绍了怎样在Docker中安装Mysql,但存在两个问题:
oec2003
2019/07/19
6.4K0
Docker安装MySql-挂载外部数据和配置
Docker安装MySQL并使用Navicat连接
  MySQL 是一个开放源码的关系数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的大中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
追逐时光者
2022/09/29
3.6K0
Docker安装MySQL并使用Navicat连接
mysql版本驱动问题
这里最头疼的是数据库驱动问题, 排查很久都找不出问题,一般就是这个导致的。能搞死人~
西柚dzh
2022/06/09
1.9K0
mysql版本驱动问题
推荐阅读
相关推荐
技术汇总:第十五章:MyBatisGenerator数据层代码生成
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验