C语言分支结构程序之if语句(1)

目录

if语句·其一

奇数的判定

 if语句·其二

对奇数·偶数的判断

 if语句的结构图

专题· 语法结构

结构图的阅读方法

结构图示例

 相等运算符

 关系运算符

嵌套的if语句


if语句·其一

大家的一天都会怎么度过呢?我想应该不会是被设计好的程序那样循规蹈矩,我们都有自己的判断,根据判断来决定自己的选择。例如,我打算明天出去购物,但是明天天气预报有雨,那么我们就必须带伞。

我们先用下面一段程序来引出if语句:

#include<stdio.h>int main(){int no;printf("请输入一个整数:");scanf("%d", &no);if(no % 5){puts("输入的整数不能被5整除");//TODO}return 0;
}

if(表达式)语句这样的语句称为if语句

if语句判断表达式的值,若结果不为0,则执行相应的语句。

括号内对条件行判断的表达式称为控制表达式,no/5的结果不为0时判断结果为1,反之为0,则执行对应的语句。

对于判断结果0/1稍后我们会讲到。

奇数的判定

只需要改动表达式即可实现对奇数的判断,那么该整数位偶数我们想要输出“该整数为偶数”再怎么办呢?

 if语句·其二

对奇数·偶数的判断

#include<stdio.h>int main(){int no;printf("请输入一个整数:");scanf("%d", &no);if(no % 2){puts("该整数为奇数");//TODO}else{puts("该整数为偶数");}return 0;
}

本程序使用的是下面这中模式:

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

 当表达式的值不为0时执行语句1,当表达式的值为0时执行语句2,我们用下面的图片来解释:

注意

如果只有当某条件成立时才进行处理,则使用不加else的if语句;而如果是根据某条件的成立与否来进行不同的处理,则使用带else的if语句。

 if语句的结构图

目前为止,我们已经学习了两种if语句,将两种if语句合起来的结构图如下:

 如果不满足上满的条件语句就会发生错误,比如下面两个错误:

| if vx % vy   puts(“vx不能被vy整除”);  //表达式缺少括号

| if(vx / vy)else d        //缺少最开始的语句

专题· 语法结构

使用if语句,无论是我们在阅读还是程序在计算时都要按照一定的顺序。

结构图的阅读方法

阅读结构图时要按照箭头的走向理解,从左边开始到右边结束,遇到分支点时,根据条件的判断选择分支继续理解。

结构图示例

A:有两条路径,分别是从头到尾和经过分支点,表示0或1个语句。

 

 B:有任意的路径,既可以从头到尾,也可以返回分支语句再次循环上一步,一直这样反复循环。表示0以上个语句。

 

 C:与A相同,表示0或1个语句。

 

 D:既可以经过语句到结束,也可以从分支点再次经过语句,任意循环,表示1个以上任意个语句。

 相等运算符

我们用一段代码来引出

#include<stdio.h>int main()
{int n1, n2;puts("请输入两个整数:");printf("整数n1:");       scanf("%d", &n1);printf("整数n2: ");       scanf("%d", &n2);if(n1 == n2){puts("这两个整数相等");//这是语句1,相等则结果为1,就执行语句1.}else{puts("这两个整数不相等"); //这是语句2,不相等结果为0,就执行语句2。}                              //ps:千万不要把语句的顺序搞反,这样对应的结果也会相反,这是 初学者的我没仔细看喜欢犯的错误。return 0;
}

这是第一次出现“==”运算符,会对左右两边操作数进行判断,若他们相等则结果为1,反之,为0;

与==运算符相反,用来判断两个操作数不想的的运算符是“!=”运算符。

这两种运算符统称为相等运算符

相等运算符
==运算符                                    a == b                  如果相等则为1,不等则为0.
!=运算符                                     a != b                    如果不等则为1,相等则为0

注意:

|  ==和!=是一个运算符,中间不能有空格!

 关系运算符

第一操作数>第二操作数,若是大于则结果为1,反之为0;

对于<运算符也是一样;

这样比较两个操作数大小的运算符我们称之为关系运算符

 当然还有“<=”和“>=”,对于结果的判断和上面并无差别,但要记得等号在右边且不能有空格。

嵌套的if语句

所谓嵌套,就像俄罗斯套娃,层层环扣,我们在读代码时可以相剥洋葱那样从外层开始,这样更方便于我们的理解。

我用下面的部分代码来表示:

大家看到一列列不同颜色和亮度的竖线了吗?从左往右就是从最外层到最里层的一个递进,可以理解为从一个大的循环到一个一个小的循环。

我们接下来编写一段代码

#include<stdio.h>int main()
{int no;puts("请输入1个整数:");printf("整数no:");       scanf("%d", &no);if(no > 0){if(no % 2 == 0){puts("该整数为偶数");}else{puts("该整数为奇数");}}else {puts("您输入的不是正数。\n\a");}                                //这里的else语句不要放在第二个if语句内,它属于第一个if 语句return 0;
}

由于咱的学习时间有限,今天我们先学习到这里,下章节我们将会结束if循环语句的学习。并且尝试着根据生活中的实际问题来用代码解决!

希望我们能共同进步,学习更多的知识,也欢迎您在评论区分享你的看法。

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

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

相关文章

webpack学习-1.起步

webpack学习-1.起步 1.基础设置2.配置文件的引入3.总结 1.基础设置 首先 webpack是干嘛的呢&#xff0c;用官网的一张图 Webpack 是一个现代的静态模块打包工具。它主要用于将前端应用程序中的各种资源&#xff08;例如 JavaScript、CSS、图片等&#xff09;打包成一个或多个…

【杂】解决关于mean(0)理解错误引发的程序bug

一、环境和解释器要一起配置好 invalid syntax 发生你在终端激活了一个环境&#xff0c;但 VSCode 依然使用之前的解释器的情况。 解释器设置影响了 VSCode 中运行 Python 脚本、调试、代码补全等功能的行为。VSCode 会根据你选择的解释器来执行这些操作。 二、关于mean&#x…

菜鸟学习日记(python)——运算符

我们进行运算时&#xff0c;需要两类数据&#xff0c;操作数和运算符&#xff0c;例如&#xff1a;ab就是一个运算&#xff0c;它的操作数是a和b&#xff0c;运算符是‘’ 在python中运算符包括以下几大类&#xff1a; 算数运算符比较&#xff08;关系&#xff09;运算符赋值…

JFrog----软件成分分析(SCA)简介

文章目录 1. SCA的重要性2. SCA的工作方式3. 安全漏洞分析4. 许可证合规性5. 代码质量和维护性结语 在当今的快速发展的软件行业中&#xff0c;软件成分分析&#xff08;Software Composition Analysis&#xff0c;简称SCA&#xff09;已成为一个不可或缺的工具。SCA的主要任务…

Remix介绍

编写和交互智能合约的集成开发IDE Remix - Ethereum IDE 使用Solidity插件 开始编写Solidity代码 任何一个智能合约中&#xff0c;都需要先声明Solidity的版本&#xff0c;定义一个license&#xff0c;一般使用MIT协议&#xff0c;有些编译器不写license会报错 // SPDX-Licen…

[oeasy]python0002_终端_CLI_GUI_编程环境_游戏_真实_元宇宙

回忆 上次 了解了 python 语言的特点 历史悠久功能强大深受好评已成趋势 3大主流操作系统 macwindowslinux 我们 选择 linux 作为基础系统 为什么选择 黑乎乎的命令行界面呢&#xff1f;&#x1f914; GUI vs CLI 个人电脑 用图标和菜单组成 图形界面(GUI) Graphic User I…

Attributes should be specified via @SpringBootApplication 和 idea运行时提示内存不足

警告信息 Attributes should be specified via SpringBootApplication 因为&#xff1a;SpringBootApplication注解中已经包含EnableAutoConfiguration注解&#xff0c;不需要重复定义EnableAutoConfiguration注解。 内存不足 参考文章&#xff1a;【java.lang.OutOfMemoryE…

常见的几种计算机编码格式

前言&#xff1a; 计算机编码是指将字符、数字和符号等信息转换为计算机可识别的二进制数的过程&#xff0c;正因如此&#xff0c;计算机才能识别中英文等各类字符。计算机中有多种编码格式用于表示和存储文本、字符和数据&#xff0c;实际走到最后都是二进制&#xff0c;本质一…

聊聊 Jetpack Compose 的 “状态订阅自动刷新” -- mutableStateListOf

Jekpack Compose “状态订阅&自动刷新” 系列&#xff1a; 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - MutableState/mutableStateOf 】 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - remember 和重组作用域 】 【 聊聊 Jetpack Compose 的 …

Elasticsearch:使用 ILM 示例运行降采样 (downsampling)

如果你对降采样还不是很熟的话&#xff0c;请阅读之前的文章 “Elasticsearch&#xff1a;对时间序列数据流进行降采样&#xff08;downsampling)”。这是一个简化的示例&#xff0c;可让你快速了解降采样如何作为 ILM 策略的一部分来减少一组采样指标的存储大小。 该示例使用典…

【深度学习】Stable Diffusion中的Hires. fix是什么?Hires. fix原理

文章目录 **Hires. fix****Extra noise**Upscalers Hires. fix https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#hires-fix 提供了一个方便的选项&#xff0c;可以部分地以较低分辨率呈现图像&#xff0c;然后将其放大&#xff0c;最后在高分辨率下添…

uniapp微信小程序解决绘制polygon结束时的问题

目录 一、前言 二、实现思路 三、结束标绘具体代码 1、在地图展示工具栏处判断工具按钮是否展示v-if"item.isshow" 2、data声明的工具按钮中新增结束标绘按钮 3、在按钮的点击事件中新增结束标绘的判断 4、判断绘制的线段个数是否大于等于三条&#xff0c;当满…