当前位置: 首页 > news >正文

C++研发笔记13——C语言程序设计初阶学习笔记11

        从今天开始我们开始第三模块《分支语句和循环语句》的学习,在本模块中我们将会涉及到以下9个内容:什么是语句、分支语句——if语言、分支语句——switch语句、循环语句——while循环、循环语句——for循环、循环语句——do while循环、折半查找算法、猜数字游戏、goto语句。

第三部分  分支语句和循环语句


一、什么是语句

/*
什么是语句?C语言中由一个分号 ; 隔开的就是一条语句。 
比如:printf("hehe");1 + 2;
*//*
C语言中的语句主要分为五类
1、表达式语句
2、函数调用语句
3、控制语句
4、复合语句
5、空语句而我们在第三部分《分支语句和循环语句》中学习到的都是控制语句。控制语句用于控制程序的执行流程,以实现程序的各种结构方式。
C语言是一门结构化的程序设计语言。支持三种结构——顺序结构、选择结构、循环结构
控制语句由特定的语句定义符组成,C语言有九种控制语句,又可细分以下三类:
1、条件判断语句(分支语句):if语句、switch语句
2、循环执行语句:do while语句、for语句、while语句
3、转向语句:break语句、goto语句、continue语句、return语句接下来我们将详细的学习这九种语句。
*/

二、分支语句——if语句

(一)、if语句的语法结构
/*
if 语句的语法结构
1、标准结构:if(表达式)语句;
2、单分支选择结构:if(表达式)语句1;else语句2;
3、多分支选择结构:    if(表达式1)语句1;else if(表达式2)语句2;else语句3;
当表达式的结果为真时,则执行对应的语句。
在C语言中,0表示假,非0表示真。
另外if语句也支持嵌套。
*/// 下面我用一个实例——“年龄的判断”,通过不断完善其功能展现if语句的语法结构
// 第一步:当输入的年龄小于18时,显示“未成年”
#include <stdio.h>int main()
{int age = 0;printf("请输入一个年龄:");scanf("%d", &age);if (age < 18)printf("未成年\n");return 0;
}// 上面这段代码,展现了一个if语句的标准结构
// 第二步:当输入的年龄小于18时,显示“未成年”;否则显示“成年”
#include <stdio.h>int main()
{int age = 0;printf("请输入一个年龄:");scanf("%d", &age);if (age < 18)printf("未成年\n");elseprintf("成年\n");return 0;
}// 这是一个标准的单分支选择语句语法结构
// 第三步:将成年继续细分成四个阶段#include <stdio.h>
int main()
{int age = 0;printf("请输入一个年龄:");scanf("%d", &age);if (age < 18)printf("未成年\n");else if (age >= 18 && age < 30)printf("青年\n");else if (age >= 30 && age < 50)printf("中年\n");else if (age >= 50 && age < 80)printf("老年\n");elseprintf("老寿星\n");return 0;
}// 这是一个标准的多分支选择语句语法结构// 上面的代码的执行语句都是单句话,如果要执行多条语句,则应该使用代码块
// 比如下面我用一段代码来展现C语言中if语句的嵌套与执行多条语句#include<stdio.h>int main()
{int choice1 = 0;int choice2 = 0;printf("请选择你是否准备认真学习(1代表认真学习,0代表不学习) >> ");scanf("%d", &choice1);if (1 == choice1){printf("你选择了一条正确的道路.\n");printf("你将获得一个好offer!\n");}else if (0 == choice1){printf("请选择你家是否有百亿家产 (1代表有,0代表没有) >> ");scanf("%d", &choice2);if (1 == choice2)printf("呵呵\n");elseprintf("那你只能卖红薯了\n");}elseprintf("输入错误,请输入0或1\n");return 0;
}
(二)、悬空else以及if书写的代码习惯
// 我们来看下面这段代码
#include <stdio.h>
int main()
{int a = 0;int b = 2;if (a == 1)if (b == 2)printf("hehe\n");elseprintf("haha\n");return 0;
}// 这就是悬空else ,是一种非常不好的代码习惯/*悬空else 是指在有多个 if 语句嵌套的情况下,else 语句与哪个 if 语句匹配不明确的情况。这种情况通常发生在没有使用大括号 {} 明确指定代码块的范围时。悬空 else 会导致代码的逻辑难以理解,并且可能产生意料之外的结果。
*/// 我们应当适当的使用{ }使代码的逻辑更清晰
// else 实际上是与最近的if进行匹配的,所以上面的代码等价于下面这样
#include <stdio.h>
int main()
{int a = 0;int b = 2;if (a == 1){if (b == 2){printf("hehe\n");}else{printf("haha\n");}}return 0;
}// 接下来我们比对几个代码来观察下养成良好代码习惯的重要性// 代码一if (condition)
{return x;
}
return y;// 代码二
if (condition)
{return x;
}
else
{return y;
}// 代码一和代码二的实际含义以及效果是一模一样的
// 但是代码二的形式明显优于代码一,代码一往往会让人产生误解// 代码三
int num = 5;
if (num == 5)
{printf("hehe\n");
}// 代码四
int num = 5;
if (5 == num)
{printf("hehe\n");
}// 代码三和代码四的实际含义以及效果是一模一样的
// 但是我们建议当比较一个变量和一个常量是否相等的时候
// 把常量放在等式的左边
// 这样增强了代码的可读性和一致性,同时也避免了将“==”写成“=”而造成的错误
(三)、练习

1、判断一个数是否为奇数

#include<stdio.h>int main()
{int num = 0;printf("请输入一个整数:");scanf("%d",&num);if (1 == num % 2)printf("奇数");elseprintf("不是奇数");return 0;
}

2、输出1-100之间的奇数

#include<stdio.h>int main()
{int i = 1;while (i <= 100){if (1 == i % 2)printf("%d ", i);i++;}return 0;
}

另外一种写法:

#include<stdio.h>int main()
{int i = 1;while (i <= 100){printf("%d ", i);i += 2;}return 0;
}
// 这个代码的效率明显高于上面的代码,因为其省略了判断的步骤和循环的次数

        以上便是本篇笔记的全部内容,我们对第三部分的学习进行了一个开篇,介绍了什么是语句以及对分支语句——if语句进行了详细的讲解。在下一篇笔记中,我们将继续第三部分的学习。

相关文章:

C++研发笔记13——C语言程序设计初阶学习笔记11

从今天开始我们开始第三模块《分支语句和循环语句》的学习&#xff0c;在本模块中我们将会涉及到以下9个内容&#xff1a;什么是语句、分支语句——if语言、分支语句——switch语句、循环语句——while循环、循环语句——for循环、循环语句——do while循环、折半查找算法、猜数…...

html5拖放

1、什么是拖放&#xff08;Drag 和 Drop&#xff09; 拖放&#xff0c;字面意思就是拖动&#xff0c;放置 在编程里面也是如此,拖放是一种常见的特性&#xff0c;即抓取对象以后拖到另一个位置。 在 HTML5 中&#xff0c;拖放是标准的一部分&#xff0c;任何元素都能够拖放。…...

卫导调零天线功率倒置算法原理及MATLAB仿真

卫导调零天线功率倒置算法原理及MATLAB仿真 文章目录 前言一、调零天线简介二、功率倒置自适应算法三、MATLAB仿真四、MATLAB代码总结 前言 \;\;\;\;\; 自适应调零抗干扰技术可以很大程度改善导航抗干扰性能&#xff0c;也是目前导航抗干扰技术中不可或缺的&#xff0c;其研究意…...

【划分型 DP】力扣139. 单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s “leetcode”, wordDic…...

Python学习从0到1 day26 第三阶段 Spark ④ 数据输出

半山腰太挤了&#xff0c;你该去山顶看看 —— 24.11.10 一、输出为python对象 1.collect算子 功能: 将RDD各个分区内的数据&#xff0c;统一收集到Driver中&#xff0c;形成一个List对象 语法&#xff1a; rdd.collect() 返回值是一个list列表 示例&#xff1a; from …...

AWTK fscript 中的 JSON 扩展函数

fscript 是 AWTK 内置的脚本引擎&#xff0c;开发者可以在 UI XML 文件中直接嵌入 fscript 脚本&#xff0c;提高开发效率。本文介绍一下 fscript 中的 ** JSON 扩展函数 ** 1.json_load 加载 json 数据。 原型 json_load(str) > object json_load(binary) > object js…...

动态规划 —— dp 问题-买卖股票的最佳时机III

1. 买卖股票的最佳时机III 题目链接&#xff1a; 123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/description/ 2. 题目解析 3. 算法原理 状态表示&#xff1a;以某一个位置为结尾或者…...

“绽放艺术风采、激发强国力量” 海南省第十一届中小学生艺术展演活动圆满开展

2024年11月1日&#xff0c;由省教育厅主办、琼台师范学院承办的海南省第十一届中小学生艺术展演省级展演活动在海口正式拉开帷幕。来自全省各市县、省属学校等共计4000余名师生参加本届中小学生艺术展演现场展演活动。 本届展演活动以“绽放艺术风采、激发强国力量”为主题&…...

Linux之文件和目录类命令详解(2)

Linux之文件和目录类命令详解&#xff08;2&#xff09; 1、mv-移动文件或重命名2、find-查找文件和目录3、locate-快速查找文件4、du-显示目录或文件的磁盘使用情况5、df-显示文件系统的磁盘空间使用情况6、chmod-更改文件或目录的权限7、chown-更改文件或目录的拥有者8、tree…...

NVR管理平台EasyNVR多品牌NVR管理工具/设备摄像头开启ONVIF的方法

NVR小程序接入平台EasyNVR作为一款功能强大的安防视频监控平台&#xff0c;以其出色的兼容性和灵活性&#xff0c;在智慧校园、智慧工厂、智慧水利等多个场景中得到了广泛应用。本文将重点介绍如何为大华摄像头开启ONVIF协议&#xff0c;以便与EasyNVR进行无缝对接。 大华大部分…...

Pr 视频过渡:沉浸式视频

效果面板/视频过渡/沉浸式视频 Video Transitions/Immersive Video Adobe Premiere Pro 的视频过渡效果中&#xff0c;沉浸式视频 Immersive Video效果组主要用于 VR 视频剪辑之间的过渡。 自动 VR 属性 Auto VR Properties是所有 VR 视频过渡效果的通用选项。 默认勾选&#x…...

SwiftUI开发教程系列 - 第1章:简介与环境配置

1.1 SwiftUI简介 SwiftUI 是 Apple 于 2019 年推出的声明式用户界面框架&#xff0c;旨在简化 iOS、macOS、watchOS 和 tvOS 应用的 UI 开发。与 UIKit 的命令式编程方式不同&#xff0c;SwiftUI 提供了一种声明式语法&#xff0c;让开发者可以以更加直观、简洁的方式构建 UI。…...

gitlab ci/cd搭建及使用笔记

记录下使用gitlab的ci/cd的devops构建过程中&#xff0c;一些易忘点或者踩坑点&#xff1a; 官方文档中英文&#xff08;建议英文&#xff09; https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html https://gitlab.cn/docs/jh/ci/pipelines/schedules.html为什么创建了…...

Xcode 16 中 Swift Testing 的参数化(Parameterized)机制趣谈

概述 我们之前曾在 《用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门》系列博文以及《WWDC24&#xff08;Xcode 16&#xff09;中全新的 Swift Testing 使用进阶》博文中较为系统地介绍了今年 WWDC 24 中全新的 Swift Testing 测试系统。 不过 Swift Testing 的本领远…...

Python自动化运维DevSecOps与安全自动化

Python自动化运维DevSecOps与安全自动化 目录 &#x1f6e1;️ DevSecOps概念与实践&#x1f50d; 自动化安全扫描与漏洞修复&#x1f9f0; 基于Python的安全审计与合规性检查&#x1f433; 云平台与容器安全&#xff1a;基于Python的容器扫描工具⚠️ 自定义安全检测与漏洞修…...

2024下半年系统架构师考试【回忆版】

2024年11月10日&#xff0c;系统架构师考试如期举行&#xff0c;屡战屡败的参试倒是把北京的学校转了好几所。 本次考试时间 考试科目考试时间综合知识、案例分析8:30 - 12:30论文14:30 - 16:30 综合知识 1、1-1000以内包含5的数字个数 2、 案例分析 1、RESTful 对于前后…...

UE5.4 PCG 自定义PCG蓝图节点

ExecuteWithContext&#xff1a; PointLoopBody&#xff1a; 效果&#xff1a;点密度值与缩放成正比...

迁移学习相关基础

迁移学习 目标 将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。 主要思想 从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。 概述 Target data&#xff1a;和你的任务有直接关系的数据&#xff0c;但数据量少&#xff…...

华为云计算HCIE-Cloud Computing V3.0试验考试北京考场经验分享

北京试验考场 北京考场位置 1.试验考场地址 北京市海淀区北清路156号中关村环保科技示范园区M地块Q21楼 考试场选择北京&#xff0c;就是上面这个地址&#xff0c;在预约考试的时候会显示地址&#xff0c;另外在临近考试的时候也会给你发邮件&#xff0c;邮件内会提示你考试…...

数据分析——学习框架

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为&#xff1a; f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法&#xff0c;得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...