【c语言】if 选择语句

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:C语言
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

【c语言】if 选择语句

  • 一 初步了解选择语句
    • 1.1 概念
    • 1.2 类比
  • 二 if 语句
    • 2.1 语法及作用
    • 2.2 示例
    • 2.3 if 语句中的嵌套
    • 2.4 多条件判断:
  • 三 if ... else 语句
  • 四 if...else if...else语句
  • 总结

引言:

在C语言中,控制流语句是编写程序时至关重要的部分之一。而其中的选择语句,尤其是if系列语句,是实现条件执行的重要工具。

在本篇博客中,我们将深入探讨C语言中的if语句及其衍生形式,帮助读者更好地理解和运用这些语句。

在这里插入图片描述

一 初步了解选择语句

1.1 概念

选择语句是编程中的一种结构,用于根据条件的真假来选择性地执行不同的代码块。

它允许程序根据特定的条件,选择性地执行一组语句或代码块中的某一部分,从而实现根据不同情况采取不同行动的逻辑。

选择语句是控制流程的基本工具之一,能够使程序根据不同的情况采取不同的分支,以实现更加灵活和智能的程序逻辑。

在C语言中,常见的选择语句包括 if 语句、switch 语句和三元运算符 ? :。

1.2 类比

让我们考虑一个现实生活中的例子:

假设你去商店购买一件衣服,并且你的购买决定取决于以下几个条件:

如果你的预算足够买下你喜欢的一件衣服,你会购买它。

如果你的预算不足以购买你喜欢的衣服,但商店提供了折扣,使得价格适合你的预算,你也会考虑购买。

如果价格仍然超出了你的预算,但你对其他款式或品牌的衣服也感兴趣,而这些衣服的价格在你的预算范围内,你可能会选择购买其中一件。

如果所有的衣服都超出了你的预算,你可能会决定不购买,或者等待更好的折扣或更合适的时机。

在这个例子中,你面临不同的选择,取决于你的预算、商品的价格以及可能存在的折扣。

这类似于编程中的选择语句,你根据不同的条件(预算、价格、折扣)做出不同的决策(购买、考虑购买、不购买),从而达到最符合你需求和情况的结果。

在接下来,我将介绍c语言中常见的选择语句。

二 if 语句

2.1 语法及作用

在C语言中,if语句是一种条件语句,用于根据某个条件的真假执行相应的代码块。

if语句的基本语法如下:

if (condition)
{// 如果条件为真,则执行这里的代码块
}

其中,condition 是一个表达式,它会被计算为真(非零)或假(零)。

如果 condition 为真,那么紧跟在 if 后面的代码块会被执行;如果 condition 为假,则这个代码块会被跳过。

流程图如下:
在这里插入图片描述

2.2 示例

下面是一个简单的if语句示例:

#include <stdio.h>int main() {int x = 10;if (x > 5) {printf("x大于5\n");}return 0;
}

在这个示例中,x > 5 是条件表达式。如果 x 的值大于5,则条件为真,于是打印 “x大于5”;如果 x 的值不大于5,则条件为假,代码块不会执行。

运行结果:

x大于5

2.3 if 语句中的嵌套

if语句可以嵌套,即在一个if语句的代码块中包含另一个if语句。这种嵌套可以使程序员根据更复杂的条件来控制程序的流程。

示例:

#include <stdio.h>int main() {int x = 10;int y = 20;if (x > 5) {if (y > 15) {printf("x大于5,y大于15\n");}}return 0;
}

这段C代码首先定义了两个整数变量 x 和 y 分别赋值为 10 和 20。

接着,通过嵌套的if语句进行条件判断。

第一个if语句检查 x > 5 是否为真,如果为真,则进入内部的第二个if语句。

在第二个if语句中,条件为 y > 15,只有当 y 大于15时,才会执行内部的代码块,即打印 “x大于5,y大于15”。

由于 x 是大于5的,而 y 也是大于15的,所以最终会输出 “x大于5,y大于15”。

运行结果:

x大于5,y大于15

2.4 多条件判断:

此外,还可以使用逻辑运算符来组合多个条件进行判断。

常用的逻辑运算符包括 &&(逻辑与)、||(逻辑或)和 !(逻辑非)。

逻辑运算符介绍

逻辑与运算符 && 用于连接两个条件表达式。当且仅当两个条件表达式都为真(非零)时,整个逻辑与表达式才为真,否则为假(零)。

逻辑或运算符 || 用于连接两个条件表达式。当两个条件表达式中至少有一个为真(非零)时,整个逻辑或表达式就为真,只有当两个条件表达式都为假(零)时,整个表达式才为假。

逻辑非运算符 ! 用于取反一个条件表达式的真值。如果条件表达式为真(非零),则取反后为假(零),反之亦然。

示例:

#include <stdio.h>int main() {int x = 10;int y = 20;if (x > 5 && y > 15) {printf("x大于5,且y大于15\n");}return 0;
}

在这个示例中,只有当 x > 5 为真且 y > 15 也为真时,才会打印 “x大于5,且y大于15”。

运行结果:

x大于5,且y大于15

通过嵌套和组合条件,可以实现更加灵活和复杂的逻辑控制。

三 if … else 语句

在C语言中,if … else语句是一种条件语句,用于根据条件的真假来执行不同的代码块。

其基本语法如下:

if (condition) {// 如果条件为真,执行这里的代码块
} else {// 如果条件为假,执行这里的代码块
}

流程图如下:

在这里插入图片描述

它工作原理是,首先计算condition中的表达式。

如果表达式的值为真(即非零),则执行if后面的代码块;

如果表达式的值为假(即零),则执行else后面的代码块。在执行完其中一个代码块后,程序会继续执行if … else语句之后的代码。

与纯if 语句的区别是它不管条件的真假一定会执行一个代码块的内容,而不是有可能什么都不执行。

if … else语句也可以嵌套,即在一个if或else块中再包含另一个if … else语句,以实现更复杂的条件判断。

示例

#include <stdio.h>int main() {int number = 10;if (number > 0) {printf("Number is positive\n");} else {printf("Number is non-positive\n");}return 0;
}

输出结果:

Number is positive

在这个例子中,如果number的值大于0,则会输出"Number is positive";否则,输出"Number is non-positive"

四 if…else if…else语句

在C语言中,if…else if…else语句是一种用于处理多个条件的控制流语句。

它允许你在一个条件不满足时检查另一个条件,并根据不同的条件执行相应的代码块。

其基本语法如下:

if (condition1) {// 如果条件1为真,执行这里的代码块
} else if (condition2) {// 如果条件1为假,而条件2为真,执行这里的代码块
} else if (condition3) {// 如果条件1和条件2都为假,而条件3为真,执行这里的代码块
} else {// 如果所有条件都为假,执行这里的代码块
}

if…else if…else语句的执行流程是按照条件从上到下依次判断。

一旦找到第一个为真的条件,就执行对应的代码块,而不再继续判断后面的条件。

如果所有条件都为假,那么执行else后的代码块(如果存在)。

以下是一个简单的例子,演示了if…else if…else语句的使用:

#include <stdio.h>int main() {int number = 0;if (number > 0) {printf("Number is positive\n");} else if (number < 0) {printf("Number is negative\n");} else {printf("Number is zero\n");}return 0;
}

输出结果:

Number is zero

在这个例子中,根据number的值,程序会输出相应的消息。

如果number大于0,输出"Number is positive";

如果number小于0,输出"Number is negative";

如果number等于0,输出"Number is zero"。

这样,通过if…else if…else语句,可以根据不同的条件执行不同的代码块。

总结

通过本文的介绍,读者应该对C语言中的if系列语句有了更加全面的了解。

从最基础的if语句到包含多个条件的if…else if…else语句,我们逐步深入探讨了这些语句的语法、用法以及示例,希望能够帮助读者掌握它们的使用技巧。

选择语句在程序设计中起着至关重要的作用,熟练掌握它们将有助于编写更加清晰、简洁和高效的代码。

这篇文章到这里就结束了

谢谢大家的阅读!

如果觉得这篇博客对你有用的话,别忘记三连哦。

我是甜美的江,让我们我们下次再见

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat的使用

1. Navicat介绍 Navicat: 是一款流行的数据库管理和开发工具, 它支持多种数据库系统, 如: MySQL, MariaDB, MongoDB, SQL Server, Oracle, PostgreSQL 等. Navicat通过提供直观的图形用户界面(GUI), 使用户能够更轻松地执行各种数据库操作, 而无需记住复杂的SQL命令.以下是Nav…

PyQt5图片浏览器

PyQt5图片浏览器 实现方式功能实现具体代码 界面实现pillow源码修改ImageQt错误主页面布局 项目开源地址 分享一个图片浏览器 实现方式 qt本身有一个QGraphicsView类用来当做视图框架。 具体参考&#xff1a;如何在pyqt中使用 QGraphicsView 实现图片查看器 不过大佬给的例子…

聚集高速托盘类四向穿梭车ASRV|一车跑全仓可获得10000个货位的HEGERLS智能搬运机器人

随着国内外制造业加速转型升级&#xff0c;越来越多的企业需要进行物流智能化升级&#xff0c;但是往往受到仓库面积、高度、形状等现实条件的限制&#xff0c;以及市场不确定性因素的影响。因此&#xff0c;相对于投资传统的自动化立体库&#xff0c;企业更倾向于选择智能化、…

机器学习-01-课程目标与职位分析

总结 本系列是机器学习课程的第01篇&#xff0c;主要介绍本门课程的课程目标与职位分析 教材 数据挖掘与机器学习 课程教学方法 布鲁姆教学法 认知领域&#xff08;cognitive domain&#xff09; 1.知道&#xff08;知识&#xff09;&#xff08;knowledge&#xff09; 是指…

细嗦MySQL三大日志

文章目录 三大日志&#xff1a;binlog&#xff08;归档日志&#xff09;、redo log&#xff08;重做日志&#xff09;、undo log&#xff08;回滚日志&#xff09;redo log刷盘机制日志文件组 binlog记录格式写入机制 两阶段提交undo log提供回滚操作提供MVCC&#xff08;多版本…

科技云报道:黑马Groq单挑英伟达,AI芯片要变天?

科技云报道原创。 近一周来&#xff0c;大模型领域重磅产品接连推出&#xff1a;OpenAI发布“文字生视频”大模型Sora&#xff1b;Meta发布视频预测大模型 V-JEPA&#xff1b;谷歌发布大模型 Gemini 1.5 Pro&#xff0c;更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…

【Excel PDF 系列】POI + iText 库实现 Excel 转换 PDF

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言转换前后效果引入 pom 配置代码实现 前言 最近遇到生成 Excel 并转 pdf 的需求&#xff0c;磕磕碰碰总…

stm32——hal库学习笔记(DMA实验)

一、DMA介绍&#xff08;了解&#xff09; 二、DMA结构框图介绍&#xff08;熟悉&#xff09; 三、DMA相关寄存器介绍&#xff08;熟悉&#xff09; 四、DMA相关HAL库驱动介绍&#xff08;掌握&#xff09; 五、DMA配置步骤&#xff08;掌握&#xff09; 六、编程实战&#xff…

Anaconda和TensorFlow环境搭建!!

Anaconda下载 进入官网下载 https://www.anaconda.com/download 也可以通过清华的映像站下载&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 我这里下载的是3.4.20版本。下载好就可以安装默认安装就行。 打开Anaconda Prompt修改成国内镜像 conda c…

大概了解一下G1收集器

在上一篇文章中&#xff08;链接&#xff1a;大概了解一下CMS收集器&#xff09;我们提到&#xff0c;CMS是一种主要针对旧生代对象进行回收的收集器。与CMS不同&#xff0c;G1号称“全功能的垃圾收集器”&#xff0c;对初生代内存和旧生代内存均进行管理。鉴于此&#xff0c;这…

pyspark分布式部署随机森林算法

前言 分布式算法的文章我早就想写了&#xff0c;但是一直比较忙&#xff0c;没有写&#xff0c;最近一个项目又用到了&#xff0c;就记录一下运用Spark部署机器学习分类算法-随机森林的记录过程&#xff0c;写了一个demo。 基于pyspark的随机森林算法预测客户 本次实验采用的…

成功解决ModuleNotFoundError: No module named ‘cv2’

&#x1f525; 成功解决ModuleNotFoundError: No module named ‘cv2’ &#x1f525; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 …

中间件-Nginx漏洞整改(限制IP访问隐藏nginx版本信息)

中间件-Nginx漏洞整改&#xff08;限制IP访问&隐藏nginx版本信息&#xff09; 一、限制IP访问1.1 配置Nginx的ACL1.2 重载Nginx配置1.3 验证结果 二、隐藏nginx版本信息2.1 打开Nginx配置文件2.2 隐藏Nginx版本信息2.3 保存并重新加载Nginx配置2.4 验证结果2.5 验证隐藏版本…

ubuntu20.04安装和使用 Maldet (Linux Malware Detect)

1、下载 Maldet sudo wget http://www.rfxn.com/downloads/maldetect-current.tar.gz 2、解压Maldet sudo tar -xvf maldetect-current.tar.gz 3、进入到Maldet目录&#xff0c;然后运行安装脚本 sudo ./install.sh 4、安装ClamAV sudo apt-get update sudo apt-get in…

Jenkins 中针对视图分组(11)

一、将没有在视图的项目进行归纳操作&#xff1b; 新增的项目规则&#xff0c;并入到某就一个视图中&#xff0c;但常规是设置一个规则&#xff0c;后续按照规则走&#xff0c;就不用单独设置 1、首先到控制台页面&#xff0c;如果没有视图分组就点击加号新增&#xff1b;已存在…

JavaScript异步编程

回调地狱 回调地狱是一种由于过度使用嵌套回调函数而导致的代码结构不清晰、难以理解和维护的问题。一个典型例子是嵌套多个回调函数&#xff0c;每个回调函数都作为另一个回调函数的参数。这样会导致各个部分之间高度耦合、程序结构混乱、流程难以追踪&#xff0c;每个任务只能…

详解顺序结构滑动窗口处理算法

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

性能优化问题思考总结

INP 是什么&#xff1f; Interaction to Next Paint (INP) INP是一项指标&#xff0c;通过观察用户在访问网页期间发生的所有点击、点按和键盘互动的延迟时间&#xff0c;评估网页对用户互动的总体响应情况。 互动是指在同一逻辑用户手势期间触发的一组事件处理脚本。例如&a…

龙蜥OS 尝试

> 尝试一下龙蜥OS&#xff0c;和Centos8应该没什么区别。 阿里云版本龙蜥 https://alinux3.oss-cn-hangzhou.aliyuncs.com/aliyun_3_x64_20G_nocloud_alibase_20230727.vhd Index of /anolis/8.8/isos/GA/x86_64/ (openanolis.cn) 网卡 我在虚拟机上安装完后&#xff0c;…

SpringBoot使用classfinal-maven-plugin插件加密Jar包

jar包加密 1、在启动类的pom.xml中加入classfinal-maven-plugin插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><…