C++-逻辑语句

if语句

基本格式:

只有判断结果为true,才会执行后续{}内的代码

if (要执行的判断,结果需是bool型)
{判断结果true,才会执行的代码;
}
if (条件判断)
{  如果判断结果为true,会执行的代码;
}else{如果判断结果为false,会执行的代码;
}

可以编写多个else if 语句 判断从上到下互斥,

有一个满足就不会在判断其它条件 可以在最后提供else语句,全部条件不满足后的执行

if (条件判断)
{如果判断结果为true,会执行的代码;
}
else if (条件判断2)
{条件2为true,会执行的代码;
}
else if (条件判断N)
{条件N为true,会执行的代码;
}
else
{    上述判断全部为false,会执行的代码;
}

嵌套:

if (条件)
{code;if (条件)  {code; }else{code;}
}
else
{code;
}

swtich控制语句

它在功能上和if、else if的组合使用基本一致, 只是提供了另外一种更为简洁的针对多条件判断的写法。

switch(expression)
{    case expression_1:code;break; // 可选的     case expression_2:code;break; // 可选的 ……       case expression_N:code;break; // 可选的default:// 当没有任何 case 表达式的值与 expression 的值匹配时,执行此语句
}

需要注意的是,switch语言只执行一次,直到出现break才停止。如果没有出现break,那么就会一直执行后面的程序。

代码举例:

#include "iostream"
using namespace std;int main()
{// 输入数字1-7 输出星期几
//    int num;
//    cout << "请输入数字来告知是星期几(1-7):" << endl;
//    cin >> num;//    switch(num){
//        case 1:
//            cout << "今天是星期一" << endl;break;
//        case 2:
//            cout << "今天是星期二" << endl;break;
//        case 3:
//            cout << "今天是星期三" << endl;break;
//        case 4:
//            cout << "今天是星期四" << endl;break;
//        case 5:
//            cout << "今天是星期五" << endl;
//            break;
//        case 6:
//            cout << "今天是星期六" << endl;break;
//        default:
//            cout << "今天是星期天" << endl;
//    }int num;cout << "请给电影打分10和9是优秀、8和7是一般、6和5是普通,低于5是垃圾:" << endl;cin >> num;switch (num) {case 10:case 9:cout << "优秀" << endl;break;case 8:case 7:cout << "普通" << endl;break;case 6:case 5:cout << "一般" << endl;break;default:cout << "垃圾电影" << endl;}return 0;
}

枚举

枚举是一种用户自定义类型,可以将数字标号定义为具体的符号。

枚举一般用于对各种不同的状态,定义可识别的符号。

枚举类型本质上述数字

默认数字序号从0开始递增,也可以手动指定,如上。指定RED为1,那么YELLOW为2,BLUE为3

枚举可以配合switch case语句一起使用,增加代码的可读性。

#include "iostream"
using namespace std;int main()
{/** enum 枚举类型名称{* 枚举元素,* 枚举元素,* ...,* ...,* }*/// 询问小朋友喜欢的颜色:红黄蓝三种选1个
//    enum Color{
//        RED,        // 默认是0
//        YELLOW,     // 默认是1
//        BLUE        // 默认是2
//    };enum Color{RED = 1,YELLOW = 3,BLUE = 5};int num;cout << "小朋友们你们喜欢什么颜色?1红色,3黄色,5蓝色" << endl;cin >> num;switch (num) {case RED:cout << "小朋友喜欢红色!" << endl;break;case YELLOW:cout << "小朋友喜欢黄色!" << endl;break;case BLUE:cout << "小朋友喜欢蓝色!" << endl;break;default:cout << "你输入的数字有误,不知道你喜欢什么颜色!" << endl;}return 0;
}

while循环:

while循环需要提供判断表达式,只要表达式结果为true,就会持续的执行下去

表达式的判断需要有变量,否则会无限循环。即一般会在代码提供:循环因子,即可以在每一次循环产生变化的变量或其它,用来规避循环无限执行。

#include "iostream"
using namespace std;int main()
{// 循环的控制因子
//    bool is_run = true;
//    int num = 0;        // 控制变量
//    while (is_run) {    // false就结束while循环了,true就继续执行循环体
//        cout << "hello" << endl;
//        num++;
//
//        if (num > 5) {
//            is_run = false; // 控制因子的更新
//        }
//    }// 我要向小美表白,每一天都表白,连续表白10天int day = 1;        // 循环的控制因子while (day <= 10){cout << "今天是第" << day << "天,小美我喜欢你!" << endl;day++;          // 循环控制因子的更新}return 0;
}

do while

do while和while功能有相同也有不同:

do while和while都是基于条件判断的循环结构

while是:判断->执行->判断->执行...的流程

do while:执行->判断->执行->判断->执行...的流程

do while适用于需要对循环体先执行的场景

while编写乘法表举例:

#include "iostream"
using namespace std;/** 打印九九乘法表* 1. 外层循环控制行,内层控制列* 2. \t分隔内层循环的输出,行和行之间有换行分隔* 1x1=1* 1x2=2  2x2=4* 1x3=3  2x3=6  3x3=9* 1x4=4  2x4=8  3x4=12 4x4=16* 1x5=5  2x5=10 3x5=15 4x5=20 5x5=25* 1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36* 1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49* 1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64* 1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81* */int main()
{// 1. 通过外层循环输出9行int line = 1;       // 外层循环控制因子,从1开始while (line <= 9)   // 判断条件,9行输出{
//        cout << line << endl;// 2. 内层循环int num = 1;    // 内层循环的控制因子while (num <= line){cout << num << "x" << line << "=" << num * line << "\t";num++;      // 内层循环控制因子++}line++;         // 外层循环控制因子的更新cout << endl;}return 0;
}

while编写案列举例:

#include "iostream"
using namespace std;/*** 细节点:* 1. 外层循环完成5天的减肥* 2. 内层循环进行:三次俯卧撑(三次完成减少1斤体重)、三次400米冲刺(三次完成减少1斤体重)* 3. 过程中要累计其体重减少*/int main()
{cout << "有点胖需要减掉10斤体重,计划5天,每天目标2斤体重。加油!" << endl;int sum = 0;            // 体重累加变量// 外层循环完成5天的减肥int day = 1;        // 减肥日的周期,从第一天开始。外层循环的控制因子while (day < 6)     // 控制减肥5天{cout << "今天是减肥的第" << day << "天" << endl;// 俯卧撑的三次控制int sport1 = 1;     // 俯卧撑控制因子while (sport1 < 4){cout << "开始做减肥第" << day << "天的第" << sport1 << "个俯卧撑!  ";sport1++;       // 俯卧撑控制因子的更新}sum += 1;           // 体重减少的累加1cout << endl;cout << "减肥第" << day << "天的3个俯卧撑做完,体重减少1斤,累计减少" << sum << "斤!" << endl;// 400米冲刺的三次控制int sport2 = 1;     // 400米冲刺控制因子while (sport2 < 4){cout << "开始做减肥第" << day << "天的第" << sport2 << "批次的400米冲刺!  ";sport2++;       // 400米冲刺控制因子的更新}sum+=1;             // 体重减少累加1cout << endl;cout << "减肥第" << day << "天的3个400米冲刺做完,体重减少1斤,累计减少" << sum << "斤!" << endl;day++;          // 循环控制因子的更新,每一天完事,day+1cout << endl;}cout << "5天的减肥完成,累计减少:" << sum << "斤体重!" << endl;return 0;
}

获取随机函数:

在代码中 #include "random" 将右侧代码放置在main函数之前 即可调用 get_random_num 函数, 随机数范围可以通过调用函数的2个参数控制,可以得到1~10范围的随机数字。

get_random_num(1,10)获取[1,10]的整数

for循环:

while循环,仅:条件判断,是语法要求,循环因子相关是用户自行提供。
for循环循环,条件判断、循环因子初始化、循环因子变化,均包含在for循环的语法内,是语法自带功能。

语法结果:

for循坏是一种更为严谨的循环:
循环因子的初始化
条件判断
循环因子的更新
都是for循环语法要求的。

for循环的循环因子初始化、条件判断、循环因子更新;
三部分是语法功能但不是强制要求,可根据需要提供或不提供

for循环和while循环区别:

for循环需要注意:

执行顺序为1——>2——>3——>4;1这个步骤只执行一次,后续执行是2——>3——>4不断重复执行。

for的嵌套:

for语句乘法表:

#include "iostream"
using namespace std;/*** for|while (; ;)* {*      ...*      for|while ()*      {*          ...*      }* }*/int main()
{// 1. 对行的控制9行for (int line = 1; line <= 9; line++){// 2. 对列进行控制// 1x3  2x3  3x3// 左侧操作数从1开始,到行号结束。 右侧操作数是固定为行号for (int col = 1; col <= line; col++){cout << col << "x" << line << "=" << col * line << "\t";}// 每一行之间留下回车分隔cout << endl;}return 0;
}

变量的作用域

在C++代码中,变量并不是随时、随处可以访问的,而是要看作用域。
{...…}称之为代码块,也是内部变量的作用域
在{....}内部声明的变量,可以在{}内任何地方被访问,但在{}之外无法被访问到

循环中断语句

在循环中可以使用:

continue关键字,跳过本次循环,进入下一次;

break关键字,直接结束所在循环。

注意:如果执行的是continue这条指令,那么cout这条指令不会被执行。

如果执行的是break语句那么会直接跳出该代码块。

1.continue的作用是:
中断所在循环的当次执行,直接进入下一次
2.break的作用是:
直接结束所在的循环
3.注意事项:
continue和break,在for和while循环中作用一致
在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

goto语句

1.goto语句可以实现任意跳转,无任何条件
2.基于其功能其实仅goto就可以实现如:循环,continue、break等的功能
3.goto语句建议:慎重使用、慎重使用、或者压根不用

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

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

相关文章

外卖小程序开发指南:从源码开始构建高效的外卖平台

今天&#xff0c;笔者将为您详细讲解如何从源码开始构建一个高效的外卖小程序&#xff0c;帮助您快速进入这一蓬勃发展的市场。 一、需求分析与设计 需求分析包括&#xff1a; 1.用户需求 2.市场需求 3.技术需求 二、前端开发 以下是开发步骤&#xff1a; -使用微信开发…

封装了一个iOS中间放大的collectionView layout

效果图如下所示 原理&#xff1a;就是首先确定一个放大和缩小系数和原大小对应的基准位置&#xff0c;然后根据距离每个布局属性到视图中心的距离和基准点到中心的距离的差距/基准点到中心的距离&#xff0c; 计算出每个布局属性的缩放系数 下面是代码 // // LBHorizontalCe…

英语学习笔记22——Give me/him/her/us/them a .... Which one?

Give me/him/her/us/them a … Which one? 给我/他/她/我们/他们一个…… 哪一个&#xff1f; 词汇 Vocabulary empty a. 空的&#xff0c;啥也没有的    v. 倒空 例句&#xff1a;这个盒子是空的。    This box is empty.    这是个空盒子。    This is an emp…

学习笔记——STM32F103V3版本——HC-05模块控制数码管

一.硬件 1.HC-05模块 2.数码管 3.连接硬件 二.在keil5中的代码 main.c代码&#xff1a; #include "stm32f10x.h" #include "buletooth.h" #include "led.h" #include "sys.h" #include "usart.h" #include "delay.…

HTTP content-type MIME 类型(IANA 媒体类型)

Content-Type(MediaType)&#xff0c;即是Internet Media Type&#xff0c;互联网媒体类型&#xff0c;也叫做MIME类型。在互联网中有成百上千中不同的数据类型&#xff0c;HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签&#xff0c;用于区分数据类型。最初MIME是用…

数据与结构--AVL树

目录 AVL树的概念 AVL树的性质 AVL树结点的定义 AVL树的插入 AVL树的旋转 左单旋 右单旋 左右双旋 右左单旋 AVL树的验证 AVL树的查找 AVL树的修改 AVL树的删除 AVL树的概念 二叉搜索树虽然可以提高我们查找数据的效率&#xff0c;但如果插入二叉搜索树的数据是…

LFSR线性反馈移位寄存器及Verilog实现

一、LFSR LFSR线性反馈移位寄存器&#xff0c;通常由移位寄存器和异或门组成&#xff0c;主要用于产生伪随机序列等。 线性反馈的含义是各个寄存器的输出通过一个反馈函数连接到第一级触发器的输入&#xff1b;LFSR中的寄存器的个数被称为LFSR的级数。 LFSR分为两类&#xff…

开源的在线JSON数据可视化编辑器jsoncrack本地部署与远程访问

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序&#xff0c;能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

Iphone自动化指令每隔固定天数打开闹钟关闭闹钟

1.业务需求&#xff1a;小z每隔五天有一个夜班&#xff0c;然后下午会有三个小时的休息时间&#xff0c;如果闹钟不响就会错过交班日期&#xff0c;但是如果设置闹钟&#xff0c;iPhone的闹钟只能设定固定循环日期闹钟&#xff0c;或者一次的闹钟&#xff0c;导致要么忘记设闹钟…

【C语言】指针运算

前言 前面在“走进指针世界”中我已经讲解过指针相关的很多前置知识&#xff0c;其实还有一个很重要的部分就是指针的运算。这篇博客&#xff0c;就让我们一起了解一下指针的运算吧&#xff01; 指针作为变量&#xff0c;是可以进行算术运算的&#xff0c;只不过情况会和整型…

LLM-Llama在 MAC M1上体验Llama.cpp和通义千问Qwen 1.5-7B

Llama.cpp的主要目标是在各种硬件上&#xff08;本地和云端&#xff09;实现LLM推断&#xff0c;同时保持最小的设置和最先进的性能。 纯C/C实现&#xff0c;没有任何依赖关系Apple芯片是一级的支持对象 - 通过ARM NEON、Accelerate和Metal框架进行优化对x86架构的AVX、AVX2和…

Go语言的命名规范是怎样的?

文章目录 Go语言的命名规范详解一、标识符命名规范示例代码 二、包名命名规范示例代码 三、变量命名规范示例代码 四、常量命名规范示例代码 五、函数命名规范示例代码 总结 Go语言的命名规范详解 在Go语言中&#xff0c;代码的命名规范对于项目的可读性、可维护性和可扩展性至…

前端菜鸡,对于35+程序员失业这个事有点麻了

“经常看到30岁程序员失业的新闻&#xff0c;说实话&#xff0c;有点麻。目前程序员供求关系并未失衡&#xff0c;哪怕是最基础的前端或者后台、甚至事务型的岗位也是足够的。 事实上&#xff0c;现在一个开出的岗位要找到一位尽职尽责能顺利完成工作的程序员并不是一件那么容…

C++_string简单源码剖析:模拟实现string

文章目录 &#x1f680;1.构造与析构函数&#x1f680;2.迭代器&#x1f680;3.获取&#x1f680; 4.内存修改&#x1f680;5. 插入&#x1f680;6. 删除&#x1f680;7. 查找&#x1f680;8. 交换swap&#x1f680;9. 截取substr&#x1f680;10. 比较符号重载&#x1f680;11…

副业树洞聊天项目/树洞倾诉/陪陪系统源码/树洞源码下载搭建

随着社会的发展和人们生活水平的提高&#xff0c;越来越多的人在面临心理压力、情感困扰或生活困境时&#xff0c;需要一个可以宣泄、倾诉和寻求支持的平台。而传统的人际交往方式往往会遇到难以排解的问题&#xff0c;比如担心被他人知晓自己的隐私等&#xff0c;这就导致了人…

package.json中peerDependencies的使用场景

文章目录 peerDependencies 的使用场景peerDependencies 的使用案例为什么使用 peerDependencies需要注意的事项主要作用 ✍创作者&#xff1a;全栈弄潮儿 &#x1f3e1; 个人主页&#xff1a; 全栈弄潮儿的个人主页 &#x1f3d9;️ 个人社区&#xff0c;欢迎你的加入&#xf…

DNS服务的部署与配置(1)

一、DNS的定义 1、域名系统&#xff08;英文&#xff1a;Domain Name System&#xff0c;缩写&#xff1a;DNS&#xff09;是互联网的一项服务。 它作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便地访问互联网。 DNS使用UDP端口53。 当前&#xff0…

超简单白话文机器学习 - 回归树树剪枝(含算法介绍,公式,源代码实现以及调包实现)

1. 回归树 1.1 算法介绍 大家看到这篇文章时想必已经对树这个概念已经有基础了&#xff0c;如果不是很了解的朋友可以看看笔者的这篇文章&#xff1a; 超简单白话文机器学习-决策树算法全解&#xff08;含算法介绍&#xff0c;公式&#xff0c;源代码实现以及调包实现&#x…

BL121DT网关在智能电网分布式能源管理中的应用钡铼技术协议网关

随着全球能源结构的转型和智能电网技术的飞速发展&#xff0c;分布式能源管理系统在提高能源利用效率、促进可再生能源接入及保障电网稳定运行方面发挥着日益重要的作用。然而&#xff0c;分布式能源系统内设备种类繁多&#xff0c;通信协议各异&#xff0c;如何高效整合这些设…

如何从http免费升级到https

使用https协议开头是为了在用户访问网站时提供更安全的网络环境。相比http&#xff0c;使用https有数据加密、身份验证、保护隐私、搜索引擎优化等优势。一般获取https证书&#xff0c;则需要支付费用给证书颁发机构&#xff08;CA&#xff09;。还有一些免费的证书证书颁发机构…