【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语句,我们逐步深入探讨了这些语句的语法、用法以及示例,希望能够帮助读者掌握它们的使用技巧。

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

这篇文章到这里就结束了

谢谢大家的阅读!

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

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

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫实战:从API获取数据

引言 在现代软件开发中&#xff0c;API已经成为获取数据的主要方式之一。API允许不同的软件应用程序相互通信&#xff0c;共享数据和功能。在本文中&#xff0c;我们将学习如何使用Python从API获取数据&#xff0c;并探讨其在实际应用中的价值。 目录 引言 二、API基础知识 …

数据湖delta lake

Table of Content1. 课程2. 前置技能3. 一、数据湖概念[了解] 3.1. 1.1 企业的数据困扰 3.1.1. 困扰一&#xff1a;互联网的兴起和数据孤岛3.1.2. 困扰二&#xff1a;非结构化数据3.1.3. 困扰三&#xff1a;保留原始数据3.1.4. 补充&#xff1a;什么是结构化&#xff1f; 3.1.4…

【Git教程】(三)提交详解 —— add、commit、status、stach命令的说明,提交散列值与历史,多次提交及忽略 ~

Git教程 提交详解 1️⃣ 访问权限与时间戳2️⃣ add命令与 commit 命令3️⃣ 提交散列值4️⃣ 提交历史5️⃣ 一种特别的提交查看方法6️⃣ 同一项目的多部不同历史6.1 部分输出&#xff1a;-n6.2 格式化输出&#xff1a;--format、--oneline6.3 统计修改信息&#xff1a;--st…

rtthread stm32h743的使用(一)新工程建立

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验&#xff0c;核心板如图&#xff1a; 1.打开rtthread studio填写芯片型号及调试口&#xff0c;我们的调试串口为USART1_PA9,PA10。 2.编译新工程并且下载 …

pycharm如何安装pygame库

pycharm如何安装pygame库 PyCharm是Python中广受欢迎的一种IDE&#xff0c;它可以为用户提供许多工具和便利的服务&#xff0c;从而大大提高开发效率。pygame库可以用python进行游戏开发提供很好的支持&#xff0c;那么在ptcharm中如何安装pygame库呢&#xff1f; 一、安装步…

Oracle内存计算应用模式

前言 内存计算是利用内存来加速数据访问和应用的性能&#xff0c;并降低应用开发复杂度的技术。近十年来&#xff0c;随着软硬件技术的发展和用户需求的成熟&#xff0c;内存计算技术已经得到了广泛地应用。 Oracle在内存计算领域具有非常重要的地位&#xff0c;这主要得益于…

ElasticSearch之操作管理规范【附件可下载world文档】

一、 目的 为了在软件生命周期内规范数据库相关的设计、开发、运维工作,便于不同团队之间的沟通及协调,制定此文档,以期在相关规范上达成共识和默契,提升相关环节的工作效率及系统的可维护性。同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好保证…

跟着cherno手搓游戏引擎【26】Profile和Profile网页可视化

封装Profile&#xff1a; Sandbox2D.h:ProfileResult结构体和ProfileResult容器&#xff0c;存储相应的信息 #pragma once #include "YOTO.h" class Sandbox2D :public YOTO::Layer {public:Sandbox2D();virtual ~Sandbox2D() default;virtual void OnAttach()ove…

Docker Volume

"Ice in my vein" Docker Volume(存储卷) 什么是存储卷? 存储卷就是: “将宿主机的本地文件系统中存在的某个目录&#xff0c;与容器内部的文件系统上的某一目录建立绑定关系”。 存储卷与容器本身的联合文件系统&#xff1f; 在宿主机上的这个与容器形成绑定关系…

3D生成式AI模型与工具

当谈到技术炒作时&#xff0c;人工智能正在超越虚拟世界&#xff0c;吸引世界各地企业和消费者的注意力。 但人工智能可以进一步增强虚拟世界&#xff0c;至少在某种意义上&#xff1a;资产创造。 AI 有潜力扩大用于虚拟环境的 3D 资产的创建。 AI 3D生成使用人工智能生成3D模…

能碳双控| AIRIOT智慧能碳管理解决方案

在当前全球气候变化和可持续发展的背景下&#xff0c;建设能碳管理平台成为组织迎接挑战、提升可持续性的重要一环&#xff0c;有助于组织实现可持续发展目标&#xff0c;提高社会责任形象&#xff0c;同时适应未来碳排放管理的挑战。能碳管理是一个涉及跟踪、报告和减少组织碳…

C++面试宝典第32题:零钱兑换

题目 给定不同面额的硬币coins和一个总金额amount,编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,则返回-1。说明:你可以认为每种硬币的数量是无限的。 示例1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = …

ETL是什么

一、ETL概念 ETL&#xff0c;是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xff…

光谱数据处理:1.特征波长优选的不同方法与Python实现

首先&#xff0c;我们要理解为什么要对“光谱数据进行特征波长优选”以及这是在干嘛&#xff0c;光谱数据可以想象成一长串的彩色条纹&#xff0c;每种颜色对应一个波长&#xff0c;就像彩虹一样。这些颜色的条纹代表了从某种物质&#xff08;比如植物、矿石或是食品&#xff0…

计网自顶向下:网络应用层【Web应用与HTTP协议】

目录 Web应用Web页URLWorld Wide Web 超文本传输协议——HTTP超文本C/S结构报文请求报文响应报文HTTP响应状态码try&#xff1a;在命令行里手工给web服务器发送请求 http连接的两种类型非持久&#xff08;http1.0&#xff09;持久&#xff08;http1.1&#xff09;▷ 流水线▷ 非…

【自然语言处理三-自注意self attention】

自然语言处理三-自注意力 self attention 自注意力是什么&#xff1f;自注意力模型出现的原因是什么&#xff1f;词性标注问题解决方法1-扩展window&#xff0c;引用上下文解决方法2-运用seq2seq架构新问题来了&#xff1a;参数量增加、无法并行的顽疾 自注意力self attention模…

C++ list详解以及模拟实现

目录 1.list的使用 1.1list的定义 1.2list的使用 1.3list iterator使用 1.4list capacity 1.5list element access 1.6list增删查改 2.list迭代器失效问题 3.list的模拟实现 1.list的使用 1.1list的定义 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容…

水印相机小程序源码

水印相机前端源码&#xff0c;本程序无需后端&#xff0c;前端直接导入即可&#xff0c;没有添加流量主功能&#xff0c;大家开通后自行添加 源码搜索&#xff1a;源码软件库 注意小程序后台的隐私权限设置&#xff0c;前端需要授权才可使用 真实时间地址拍照记录&#xff0c…

alembic

alembic是sqlalchemy的作者开发的。 用来做OMR模型与数据库的迁移与映射。 第一个&#xff0c;alembic的所有命令都是以alembic开头 第二&#xff0c;alembic的迁移文件也是通过版本进行控制的。首先&#xff0c;通过pip install alembic进行安装。以下将解释alembic的用法 方…

从管易云·奇门到金蝶云星空通过接口配置打通数据

从管易云奇门到金蝶云星空通过接口配置打通数据 对接源平台:管易云奇门 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。 目标系统:金蝶…