【c语言】if 选择语句

news2024/9/29 13:21:24

在这里插入图片描述

🎈个人主页:豌豆射手^
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏: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.coloradmin.cn/o/1473090.html

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

相关文章

计网Lesson16 - TCP选择重传和流量控制

文章目录 1. 选择性确认&#xff08;SACK&#xff09;2. TCP流量控制2.1 基本情况2.2 特殊情况 1. 选择性确认&#xff08;SACK&#xff09; TCP通信中&#xff0c;发送序列中的某一包丢失&#xff08;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5 中 3 丢失&#…

Promise 介绍与基本使用 - 学习笔记

Promise 介绍与基本使用 1、 Promise 是什么&#xff1f;2、创建 Promise 实例对象3、Promise 实例方法4、Promise 的基本工作流程5、实例方法6、静态方法7、async 和 await7.1、关键字7.2、实例7.3、区别7.4、为什么使用 async/await 比较好&#xff1f; 1、 Promise 是什么&a…

NUS神经网络生成我感觉解读过于夸大了

网上对其解读有点过了&#xff0c;只是合成了最后标准化层的参数&#xff0c;或者是更多的其他层参数。而不是网络结构。对于新任务下的网络结构以及参数如何生成&#xff0c;应该是做不到的&#xff0c;论文意义有限。 论文片段&#xff1a;我们提出了神经网络扩散&#xff0…

数据可视化引领智慧仓储新时代

随着科技的飞速发展&#xff0c;数据可视化已然成为智慧仓储领域的璀璨明珠&#xff0c;其强大的功能和多面的作用让智慧仓储焕发出勃勃生机。让我们一同探索&#xff0c;数据可视化究竟在智慧仓储中起到了怎样的作用。下面我就以可视化从业者的角度来简单谈谈这个话题。 在这…

【练习——打印每一位数】

打印一个数的每一位 举个例子&#xff1a;我们现在要求打印出123的每一位数字。我们需要去想123%10等于3&#xff0c;就可以把3单独打印出来了&#xff0c;然后再将123/10可以得到12&#xff0c;将12%10就可以打印出2&#xff0c;而我们最后想打印出1&#xff0c;只需要1%10就…

数据隐私安全趋势

在当今社交媒体和开源开发的世界中&#xff0c;共享似乎已成为社会常态。毕竟&#xff0c;我们都被教导分享就是关怀。这不仅适用于个人&#xff0c;也适用于公司&#xff1a;无论是有意在社交媒体帐户和公司网站上&#xff0c;还是无意中通过员工的行为&#xff0c;公司可能会…

树莓派使用git clone时报错failed: The TLS connection was non-properly terminated.

fatal: unable to access https://github.com/jacksonliam/mjpg-streamer.git/: gnutls_handshake() failed: The TLS connection was non-properly terminated. 原因&#xff1a;权限不足 解决办法&#xff1a;sudo git clone 加对应网址。 sudo git clone https://github.co…

golang gin单独部署vue3.0前后端分离应用

概述 因为公司最近的项目前端使用vue 3.0&#xff0c;后端api使用golang gin框架。测试通过后&#xff0c;博文记录&#xff0c;用于备忘。 步骤 npm run build&#xff0c;构建出前端项目的dist目录&#xff0c;dist目录的结构具体如下图 将dist目录复制到后端程序同级目录…

排序(9.17)

1.排序的概念及其运用 1.1排序的概念 排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记…

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

CMU15445实验总结(Spring 2023)

CMU15445实验总结(Spring 2023) 背景 菜鸟博主是2024届毕业生&#xff0c;学历背景太差&#xff0c;导致23年秋招无果&#xff0c;准备奋战春招。此前有读过LevelDB源码的经历&#xff0c;对数据库的了解也仅限于LevelDB。奔着”有对比才能学的深“的理念&#xff0c;以及缓解…

Java之SpringMVC源码详解

SpringMVC源码 一、SpringMVC的基本结构 1.MVC简介 以前的纯Servlet的处理方式&#xff1a; Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type req.getParameter(Constant.REQUEST_PA…

Scrapy实战

代码&#xff1a; Spider import scrapy from urllib.parse import urljoin from scrapy import Requestclass JiaSpider(scrapy.Spider):name "jia"allowed_domains ["desk.zol.com.cn"]start_urls ["https://desk.zol.com.cn/dongman/"]d…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理

k8s集群的三种接口 k8s集群有三大接口&#xff1a; CRI&#xff1a;容器进行时接口&#xff0c;连接容器引擎--docker、containerd、cri-o、podman CNI&#xff1a;容器网络接口&#xff0c;用于连接网络插件如&#xff1a;flannel、calico、cilium CSI&#xff1a;容器存储…

C# 学习第三弹——表达式

表达式操作数运算符 &#xff08;一&#xff09;算数运算符 错误例子&#xff1a;这不是python&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 正确结果&a…

【Flutter/Android】新建项目,打开android 目录,报错红色以及开启 MultiDex 配置

1 报错红色问题。 单独打开 Flutter 项目下的 android 项目即可。 也就是说&#xff0c;你要一部分原生代码开发&#xff0c;你就需要自己把 android 项目单独出去做&#xff08;其实就相当于android 项目引用 Flutter的dart部分&#xff09;。也就是说&#xff0c;在 Flutter…

状态机-----

1.原理 同步的意思就是状态的跳转都是在时钟的作用下跳转的&#xff0c;有限是指状态机中状态的个数是有限的。两种状态机的共同点都是状态的跳转只和输入有关&#xff0c;区别就是如果最后的输出只和当前状态有关而与输入无关&#xff0c;则是moore型状态机。如果最后的输出不…

文件对比工具Beyond Compare 4 mac v4.4.7(28397)中文版

Beyond Compare是一款适用于Windows、Mac OS X和Linux平台的文件和文件夹比较工具。它可以帮助用户比较和同步文件夹、文件和压缩包等内容&#xff0c;支持多种文件格式&#xff0c;如文本、图像、音频、视频等。 软件下载&#xff1a;Beyond Compare 4 mac v4.4.7(28397)中文版…

二进制部署k8s之网络部分

1 CNI 网络组件 1.1 K8S的三种接口 CRI 容器运行时接口 docker containerd podman cri-o CNI 容器网络接口 flannel calico cilium CSI 容器存储接口 nfs ceph gfs oss s3 minio 1.2 K8S的三种网络 节点网络 nodeIP 物理网卡的IP实现节点间的通信 Pod网络 podIP Pod与Po…

NVIDIA\CUDA\cudnn安装以及visual studio2022编译安装ceres2.2.0库

一、NVIDIA驱动安装 网址:官方驱动 | NVIDIA 因为本文之后需要visual studio2022进行编译&#xff0c;所以在安装NVIDIA\CUDA\cudnn之前你先得安装visual studio2022 点击NVIDIA控制面板&#xff0c;NVIDIA Control Panel 查看产品家族 根据产品家族选择驱动&#xff0c;点…