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.mfbz.cn/a/220790.html

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

相关文章

字符集——带你了解UTF-8的前世今生

文章目录 字符集的来历汉字和字母的编码特点Unicode字符集字符集小结编码和解码开发约定 字符集的来历 计算机是美国人发明的&#xff0c;由于计算机能够处理的数据只能是0和1组成的二进制数据&#xff0c;为了让计算机能够处理字符&#xff0c;于是美国人就把他们会用到的每一…

关于 Kubernetes中Admission Controllers(准入控制器) 认知的一些笔记

写在前面 工作中遇到&#xff0c;简单整理记忆博文为官方文档整理涉及内置准入控制的分类理解理解不足小伙伴帮忙指正 人活着就是为了忍受摧残&#xff0c;一直到死&#xff0c;想明了这一点&#xff0c;一切事情都能泰然处之 —— 王小波《黄金时代》 为什么需要准入控制器 准…

【Qt开发流程】之对象模型2:属性系统

描述 Qt提供了一个复杂的属性系统&#xff0c;类似于一些编译器供应商提供的属性系统。然而&#xff0c;作为一个独立于编译器和平台的库&#xff0c;Qt不依赖于非标准的编译器特性&#xff0c;如__property或[property]。 Qt解决方案适用于Qt支持的所有平台上的任何标准c编译…

高性能网络编程 - 白话TCP 三次握手过程

文章目录 概述TCP协议头的格式TCP Finite State Machine (FSM) 状态机三次握手如何在 Linux 系统中查看 TCP 状态 概述 每一个抽象层建立在低一层提供的服务上&#xff0c;并且为高一层提供服务。 我们需要知道 TCP在网络OSI的七层模型中的第四层——Transport层 -----------…

百度智能云正式上线Python SDK版本并全面开源

文章目录 前言一、SDK的优势二、千帆SDK&#xff1a;快速落地LLM应用三、如何快速上手千帆SDK3.1、SDK快速启动3.2. SDK进阶指引 3.3. 通过Langchain接入千帆SDK4、开源社区 前言 百度智能云千帆大模型平台再次升级&#xff01;在原有API基础上&#xff0c;百度智能云正式上线…

MicroPython标准库

MicroPython标准库 arraybinascii(二进制/ASCII转换)builtins – 内置函数和异常cmath – 复数的数学函数collections – 集合和容器类型errno – 系统错误代码gc – 控制垃圾收集器hashlib – 散列算法heapq – 堆队列算法io – 输入/输出流json – JSON 编码和解码math – 数…

周周爱学习之Redis重点总结

redis重点总结 在正常的业务流程中&#xff0c;用户发送请求&#xff0c;然后到缓存中查询数据。如果缓存中不存在数据的话&#xff0c;就会去数据库查询数据。数据库中有的话&#xff0c;就会更新缓存然后返回数据&#xff0c;数据库中也没有的话就会给用户返回一个空。 1.缓…

【6】PyQt信号和槽

1. 信号和槽简介 信号和槽机制是 QT 的核心机制&#xff0c;应用于对象之间的通信 信号和槽是用来在对象间传递数据的方法当一个特定事件发生的时候&#xff0c;signal会被emit出来&#xff0c;slot调用是用来响应相应的signal的Qt中对象已经包含了许多预定义的 signal&#…

全网最新最全的Appium自动化:使用appium后安卓手机无法调出键盘解决方法

问题&#xff1a;用appium进行真机调试后&#xff0c;使用手机的app进行输入时无法调出键盘。 原因&#xff1a;appium调试时&#xff0c;将手机输入法设置成了Unicode IME 注&#xff1a;按键详细操作参考&#xff1a;转载至 作者&#xff1a;oscarforever 地址&#xff1…

Java链接数据库

本文介绍的是Java链接数据库中的JDBC操作&#xff0c;JDBC虽然现在用的不多&#xff0c;但面试的时候会问道。需要有相应的了解。下面以链接MySQL为例子。 JDBC 什么jdbc Java DataBase Connectivity是一种用于执行SQL语句的Java API&#xff0c;它由一组用Java语言编写的类和…

制作一个RISC-V的操作系统五-RISC-V汇编语言编程一

文章目录 RISC-V汇编语言入门汇编语言概念简介 汇编语言语法介绍&#xff08;GNU版本&#xff09; RISC-V汇编语言入门 汇编语言概念简介 高级&#xff1a;可以理解就是更贴近人的理解 低级&#xff1a;可以理解就是更贴近机器的 难移植&#xff1a;汇编指令基本上和机器指令…

对标Gen-2!Meta发布新模型,进军文生视频赛道

随着扩散模型的飞速发展&#xff0c;诞生了Midjourney、DALLE 3、Stable Difusion等一大批出色的文生图模型。但在文生视频领域却进步缓慢&#xff0c;因为文生视频多数采用逐帧生成的方式,这类自回归方法运算效率低下、成本高。 即便使用先生成关键帧,再生成中间帧新方法。如…

网络模拟与网络仿真

目录 一、概念界定 二、模拟&#xff08;simulation&#xff09;与仿真&#xff08;emulation&#xff09; 2.1 模拟&#xff08;simulation&#xff09; 2.2 仿真&#xff08;emulation&#xff09; 2.3 区分 三、网络模拟与网络仿真 3.1 网络模拟 3.2 网络仿真 3.…

软件测试要学习的基础知识——黑盒测试

黑盒测试概述 黑盒测试也叫功能测试&#xff0c;通过测试来检测每个功能是否都能正常使用。在测试中&#xff0c;把程序看作是一个不能打开的黑盒子&#xff0c;在完全不考虑程序内部结构和内部特性的情况下&#xff0c;对程序接口进行测试&#xff0c;只检查程序功能是否按照…

解析 Smilee Finance:基于无偿损失的链上期权方案

“有了 Smilee Finance&#xff0c;无偿损失或许不再是一种损失&#xff0c;它也更可能是一种可组合性的收益” 无偿损失 流动性挖矿是引燃 DeFi Summer 的导火索&#xff0c;在 AMM DEX 中&#xff0c;它允许用户将资产按照比例添加到 AMM 流动性池中成为 LP&#xff0c;以为交…

POJ 3233 Matrix Power Series 动态规划(矩阵的幂)

一、题目大意 给出一个矩阵A&#xff0c; 输出矩阵B的每一项对M取余数的值。 二、解题思路 以二维矩阵为例&#xff0c;首先计算K2的情况&#xff0c;我们设结果矩阵为B 有如下表达式 那么不难看出&#xff0c;需要的矩阵其实就是以下的两个矩阵相乘后的左上角的N*N个 然后…

RoPE旋转位置编码浅析

RoPE旋转位置编码浅析 本文介绍了旋转位置编码RoPE在大模型中的广泛应用,包括Llama、Mistral 7B、Baichuan、ChatGLM、Qwen、…等。由于计算资源限制,大模型通常在较小的上下文长度中进行训练,导致在推理超出预训练长度时性能显著下降。为了解决这个问题,涌现了许多基于Ro…

火山引擎DataTester升级MAB功能,助力企业营销决策

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 DataTester&#xff0c;火山引擎推出的 AB 测试与智能优化平台&#xff0c;近日宣布对其 MAB&#xff08;Multi-armed Bandit&#xff09;功能进行了升级&#xff0…

如果不小心修改了按钮的名字并且忘记了原名字

出现上述情况&#xff0c;可以右边点击转到代码&#xff0c;注释掉问题行&#xff0c;此页的设计界面就恢复了。

MySQL主从复制(一主一从、双主双从)

一、概述 1. 数据库主从概念、优点、用途 主从数据库是什么意思呢&#xff0c;主是主库的意思&#xff0c;从是从库的意思。数据库主库对外提供读写的操作&#xff0c;从库对外提供读的操作。   数据库为什么需要主从架构呢&#xff1f; 高可用&#xff0c;实时灾备&#x…