C++中的判断与循环

一.if判断语句

1.程序中的判断:

if (要执行的判断,最后的返回值要是bool型的数据) {如果为真,要执行的代码段;
}
#include"iostream" 
using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout << "ans大于1000" << endl;} 
}

二.if else语句

应用场景:

在前面我们所了解的if语句中只能对一种情况进行判断,若满足,则执行,那么,不满足怎么办呢?

回答就是if else语句

1.程序中的判断:

#include"iostream" 
using namespace std;int main() {if (条件判断语句) {若为真,则执行的代码段; } else {若为假,则执行的代码段; }
}

2.简单举例:

#include"iostream" 
using namespace std;int main() {int month_money;cin >> month_money;if (month_money > 50000) {cout << "高富帅" << endl;} else {cout << "高帅" << endl;}
}

三.else if语句

应用场景:在某些情况下,判断条件不止一个,可能存在多个,那么这时候我们就需要用到else if语句了

1.程序中的判断:

#include"iostream" 
using namespace std;int main() {if (条件判断1) {若1为真,执行的代码段; } else if (条件判断2) {若2为真,执行的代码段; } else if (条件判断n) {若n为真,执行的代码段; } else {上面所有的条件全都不满足时执行的代码段; }
}

2.举例:

#include"iostream" 
using namespace std;int main() {int month_money;cin >> month_money;if (month_money < 10000) {cout << "小高富帅" << endl;} else if (month_money < 30000){cout << "高富帅" << endl;} else if (month_money < 50000) {cout << "大高富帅" << endl;} else {cout << "老高富帅" << endl;}
}

四.逻辑判断语句的嵌套

1.应用场景:

在很多场景中,并不仅仅只是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求,我们要满足这种判断需求就需要用到嵌套判断语句

2.程序中的嵌套判断:

#include"iostream" 
using namespace std;int main() {if (条件1) {代码段;if (满足条件1后的条件2) {代码段; } else {// 代表满足条件一后不满足条件2代码段; }} else {// 不满足条件1代码段; }
}

3.举例:

#include"iostream" 
using namespace std;int main() {int age;cout << "请输入您的年龄:" << endl;cin >> age;if (age >= 18) {cout << "您在生理上已经成年了" << endl;int salary;cout << "请输入您的每月工资" << endl;cin >> salary;if (salary > 8000) {cout << "您已经足够养活自己,过上还不错的日子了" << endl;} else {cout << "加油" << endl; }} else {cout << "小朋友好好学习哦" << endl;}
}

五.基于逻辑运算符完成复杂判断

若有以下三种场景:

①:基于if else组合完成条件达成和未达成的代码执行

②:基于else if完成多个并行条件的判断

③:基于嵌套if完成多条件同时满足的判断

在场景不过于复杂的前提下,我们可以使用逻辑运算符快速完成上述需求

也就是&&(与),||(或),!(非)

1.&&

if (条件1 && 条件2) {只有条件1和2同时满足才会执行代码段;
}

2.||

if (条件1 || 条件2) {条件1或2只要满足一个即可执行代码段;
}

3.!

if (!条件) {只有当条件不成立才会执行代码段;
}

六.switch控制语句

1.应用场景:

在程序中经常有许多场景需要用到多条件判断,针对多条件判断的场景,我们需要用到switch控制语句

2.程序中:

#include"iostream" 
using namespace std;int main() {switch (case) {case 1:代码段;break;case 2:代码段;break;...case n:代码段;break;default:若没有任何case符合,则执行这里的代码段;  }
}

注意:

①:在switch语句中仅仅做值匹配(相等的判断)

②:break语句可以中断switch语句,否则就会继续向下执行其他的case段,包括default段,直到执行完或者遇到break为止

3.举例:

#include"iostream" 
using namespace std;int main() {int date;cout << "请输入今天是周几(数字1-7):";cin >> date;switch (date) {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;case 7:cout << "今天是周天" << endl;break;default:cout << "您的输入有误" << endl;break;}
}

七.while循环语句

在生活中我们普遍循环重复着一天又一天,在程序中也同样有着循环,并且其还占着举足轻重的作用

1.程序中的循环:

while (条件表达式) {循环体代码;
}

在while循环中,只要满足了while循环中的条件,那么就会一直执行while循环中的代码

2.举例:

#include"iostream" 
using namespace std;int main() {int count = 1;cout << "好习惯的养成需要21天" << endl;while (count <= 21) {cout << "坚持学习" << endl;count++;}
}

3.do while循环

do while循环只是while循环的一个变换形式,与while循环在功能上的不同点在于while循环只会在条件判断成立时才执行循环体中的代码,而do while循环会首先执行一次循环体中的代码再判断是否符合条件,是否进入while循环中

4.程序中的do while循环:

do {循环体;
} while (条件表达式)

5.while循环嵌套

嵌套的思想我们在之前就已经提到过,因此直接上一个简单案例帮助大家理解吧

#include"iostream" 
using namespace std;// 输出九九乘法表 
int main() {int i = 1;while (i <= 9) {int j = 1;while (j <= i) {cout << j << "*" << i << "=" << i * j << "\t";j++;}i++;cout << endl;}
}

八.for循环语句

除了while循环语句之外,C++还提供for循环语句完成循环

1.程序中的for循环语句:

#include"iostream" 
using namespace std;int main() {for (循环因子初始化语句; 条件判断; 循环因子变化语句) {循环体; } 
}

2.while循环与for循环的区别:

while循环中仅有条件判断,这是语法的要求,而循环因子是用户自行提供的

for循环中包含条件判断,循环因子初始化,循环因子变化,这些都是for循环语法中自带的功能

3.简单案例:

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好学习天天向上" << endl;}
}

4.for循环中的嵌套

同样还是嵌套的概念,直接给出简单的案例帮助大家理解

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 21; i++) {cout << "好好学习天天向上" << endl;for (int j = 1; j <= 3; j++) { // 这里作为循环因子的两个变量名不能相同,你应该能想明白是为什么吧 cout << "每天好好学习的奖励就是丰盛美味的一日三餐" << endl;}}
}

九.变量的作用域

1.前置知识:

在C++代码中,变量并不是随时随地都可以访问的,而是要看是否处于该变量的作用域中

2.怎么区分一个变量的作用域:

看变量定义在哪个大括号({})中,它被定义的大括号就是它的作用域(当然不包括它还没被定义的时候所在的位置)

#include"iostream" 
using namespace std;int main() {// 上方不属于temple的定义域,因为还没被定义 int temple;// 在这之下的都是temple的作用域 for (int i = 1; i < 9; i++) {int ans;// ans的作用域仅限于每次它被for循环定义之后,在for循环中起作用 }// 这下面还属于ans的定义域吗?当然不是,因为ans只被局限于for循环中,根本出不来 
}

十.循环终端语句

1.前言:

无论是while循环还是for循环都是重复性的执行特定的操作,但是如果出现了某种情况,我想要跳过满足某种条件的某次循环,或者一旦满足了某种条件,我就中止这个循环,那么改怎么办呢?

2.continue和break关键字

我们使用continue关键字跳过某一次循环,直接执行下一次

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么跳过本次循环 continue;cout << i << endl;}
}

我们使用break关键字直接中止整个循环

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) // 如果i等于3,那么中止整个for循环 break;cout << i << endl;}
}

注意:无论是continue还是break,都是在执行到它们的位置之后才会进行跳过或者终止,那么在它们之前书写的代码是不受影响的

#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代码" << endl;  // 正常输出了5次,不受continue的影响 if (i == 3) // 如果i等于3,那么跳过本次循环 continue;cout << i << endl;}
}
#include"iostream" 
using namespace std;int main() {for (int i = 1; i <= 5; i++) {cout << "上方的代码" << endl; // 输出了三次 if (i == 3) // 如果i等于3,那么中止整个for循环 break;cout << i << endl;}
}

十一.goto语句

1.goto语句的作用:

提供无条件跳转的功能

2.标签的概念:

我们定义一个标签配合goto进行使用,一旦遇到goto语句,就跳转到该标签的位置开始按顺序执行代码

3.标签的定义方式:

标签名:

4.goto语句的使用语法:

标签1:代码;
标签2:代码;
...
标签n:代码;
goto 标签5;

5.简单案例:

#include"iostream" 
using namespace std;int main() {// 只要i小于等于10就会不断跳回到loop的位置重新开始执行 int i = 1;loop:cout << i << " ";i++;if (i <= 10)goto loop;cout << endl;
}

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

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

相关文章

前端开发中生成网站的favicon.ico文件的软件推荐及使用方法

日常网站开发中&#xff0c;我们经常需要生成网站的favicon.ico文件&#xff0c;今天我在这里来推荐几个编辑.ico(也可将图片格式转化为.ico)图片&#xff0c;而且免费的那软件&#xff1a; GIMP&#xff1a;一个功能强大的开源图像编辑软件&#xff0c;支持多种文件格式&#…

浅谈WebSocket-FLV

FLV是一种视频数据封装格式&#xff0c;这种封装被标准通信协议HTTP-FLV和RTMP协议应用。 而WebSocket-FLV是一种非标的FLV封装数据从后端发送到前端的一种方式。 在WebSocket的url请求中&#xff0c;包含了需要请求设备的视频相关信息&#xff0c;在视频数据到达时&#xff0c…

基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 ADMM算法 4.2 最大似然ML检测算法 4.3 最小均方误差&#xff08;MMSE&#xff09;检测算法 4.4 迫零&#xff08;ZF&#xff09;检测算法 4.5 OCD_MMSE 检测算法 4.6 LAMA检测算法 …

cocos creator 笔记-路边花草

版本&#xff1a;3.8.5 实现目标&#xff1a;给3d道路生成路边景观花草 在场景下创建一个节点&#xff0c;我这里种植两种花草模型&#xff0c;兰花和菊花&#xff0c;所以分别在节点下另创建两个节点&#xff0c;为了静态合批。 1.将花草模型分别拖入场景中&#xff0c;制作…

R语言——循环

参考资料&#xff1a;学习R 在R中有三种循环&#xff1a;repeat、while和for。虽然向量化意味着我们可能并不需要大量使用它们&#xff0c;但在需要重复执行代码时&#xff0c;它们是非常有用的。 1、重复循环 R中最容易掌握的循环是repeat。它所做的事情就是反复地执行代码&a…

springboot使用阿里限流框架-sentinel

当前项目源码 控制台下载 启动bin中的看板服务&#xff1a;账号密码:sentinel/sentinel 官方文档地址 项目引入依赖 <!-- sentinel注解支持 --> <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj<…

CSS3学习教程,从入门到精通,CSS3 元素的浮动与定位语法知识点及案例代码(17)

CSS3 元素的浮动与定位语法知识点及案例代码 一、CSS3 浮动&#xff08;float&#xff09; 知识点 1. **定义** &#xff1a;浮动使元素向左或向右移动&#xff0c;直到它的外边缘碰到包含框或另一个浮动元素的边框为止。浮动主要用于布局&#xff0c;如实现图文绕排等效果。…

数据结构:汉诺塔问题的递归求解和分析

递归方法求解该类问题&#xff0c;是一种简单的思维方法&#xff0c;通常比使用迭代方法更简单。但是&#xff0c;递归方法也有劣势。此处以典型的汉诺塔问题&#xff08;Tower of Hanoi&#xff09;为例给予说明。 汉诺塔是根据一个传说形成的数学问题&#xff0c;最早是由法国…

3.27学习总结 算法题

自己用c语言做的&#xff0c;不尽如意 后面看了题解&#xff0c;用的是c&#xff0c;其中string 变量和字符串拼接感觉比c方便好多&#xff0c;可以用更少的代码实现更好的效果&#xff0c;打算之后去学习c&#xff0c;用c写算法。 递归&#xff0c;不断输入字符&#xff0c;…

vue 图片放大到全局

背景&#xff1a; 在vue项目中&#xff0c;el-image组件图片组件用于展示图片&#xff0c;组件自带的属性preview-teleported&#xff0c;设置为true可以控制图片放大到全局 实现效果&#xff1a; 核心代码&#xff1a; //图片地址&#xff1a;BASEUrl /file/ item.file //这…

【商城实战(75)】数据分析指标体系搭建:从0到1的技术指南

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

seatunnel配置mysql2hive

SeaTunnel安装教程 # 执行流程 # 下载&#xff0c;解压 # https://mirrors.aliyun.com/apache/seatunnel/2.3.8/?spma2c6h.25603864.0.0.2e2d3f665eBj1E # https://blog.csdn.net/taogumo/article/details/143608532 tar -zxvf apache-seatunnel-2.3.8-bin.tar.gz -C /opt/mo…

SSH项目负载均衡中的Session一致性解决方案‌

SSH项目负载均衡中的Session一致性解决方案‌ 1. 粘性会话&#xff08;Session Sticky&#xff09;‌2. Session复制&#xff08;集群同步&#xff09;‌3. 集中式Session存储‌4. 客户端存储&#xff08;Cookie加密&#xff09;‌方案选型建议‌注意事项‌ 1. 粘性会话&#x…

MySQL 表连接(内连接与外连接)

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 1、表连接的核心概念 1.1 为什么需要表连接&#xff1f; 2、内连接&a…

解锁Spring Boot异步编程:让你的应用“飞“起来!

引言&#xff1a;从点餐说起 &#x1f354; 想象你在快餐店点餐&#xff1a; 同步模式&#xff1a;排队等餐&#xff0c;队伍越来越长&#xff08;就像卡死的服务器&#xff09;异步模式&#xff1a;拿号后去旁边坐着等&#xff08;服务员喊号通知你&#xff09; 今天我们就…

做一个有天有地的css及html画的旋转阴阳鱼

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>天地阴阳</title><style>/* 重置默认样…

ngx_http_core_main_conf_t

定义在 src\http\ngx_http_core_module.h typedef struct {ngx_array_t servers; /* ngx_http_core_srv_conf_t */ngx_http_phase_engine_t phase_engine;ngx_hash_t headers_in_hash;ngx_hash_t variables_hash;…

计算机二级(C语言)考试高频考点总汇(二)—— 控制流、函数、数组和指针

目录 六、控制流 七、函数 八、数组和指针 六、控制流 76. if 语句可以&#xff08;嵌套&#xff09;&#xff0c; if 语句可以嵌套在另一个 if 语句内部&#xff0c;形成&#xff08;嵌套的条件判断结构&#xff09;&#xff0c;用于处理更复杂的条件判断逻辑。 77. els…

WebRTC协议全面教程:原理、应用与优化指南

一、WebRTC协议概述 **WebRTC&#xff08;Web Real-Time Communication&#xff09;**是一种开源的实时通信协议&#xff0c;支持浏览器和移动应用直接进行音频、视频及数据传输&#xff0c;无需插件或第三方软件。其核心特性包括&#xff1a; P2P传输&#xff1a;点对点直连…

使用 WSL + Ubuntu + Go + GoLand(VSCode) 开发环境配置指南

1. 安装和配置 WSL 与 Ubuntu 启用 WSL 功能(以管理员身份运行 PowerShell): wsl --install 或手动启用: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachi…