C++要点总结_04_循环语句

目录

  • 4 循环语句
    • 4.1 while循环
    • 4.2 do...while
    • 4.3 for循环
    • 4.4 循环控制
    • 4.5 循环嵌套

4 循环语句

  1. 循环控制:控制程序重复执行,当不符合循环条件时停止循环。
  2. 循环控制种类:while循环、do…while循环和for循环语句。

4.1 while循环

  1. while循环: 当while表达式为真时,开始循环执行语句,当表达式的值为假时退出循环,执行循环外的下一条语句。循环每次都是执行完语句后回到表达式处重新开始判断,重新计算表达式的值,一旦表达式的值为假时就退出循环,为真时就继续执行语句。
/* 
while循环形式:
while(表达式)
{语句}*/
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用while循环计算1~100的累加int i=1,sum=0;    // 初始化while(i<101)    //表达式不可以为空.表达式可以用非0代表逻辑值真true,用0代表逻辑值false。{sum += i;if (i%20 == 0){cout<<i<< " " <<sum<<endl;}++i;      //循环体中必须有改变条件表达式值的语句,否则为死循环}cout<< "hs " <<endl;return 0;
}/* 运行结果20 21040 82060 183080 3240100 5050hs 
Program ended with exit code: 0
*//*
while(1) // 死循环
{...}while(0) // 不会进行循环的语句
{...}*/

4.2 do…while

  1. do…while循环语句一般形式如下:do(语句)while(表达式)。
  2. do…while循环的执行顺序是执行循环体的内容,然后判断表达式的值,如果表达式的值为真就跳到循环体处继续执行循环体,循环一直到表达式的值为假,表达式的值为假时跳出循环,执行下一条语句。do…while循环和while循环实现累加的循环体语句相同,只是执行循环体的先后顺序不同。
/*
do(语句)while(表达式)
*/#include<iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用do{}while();循环计算1~100的累加int i=1,sum=0;do         // 循环先执行循环体,如果循环条件不成立,循环体已经执行一次了,使用时注意变量变化。{sum += i;if (i%20 == 0){cout<<i<< " " <<sum<<endl;}++i;        // 循环体中必须有改变条件表达式值的语句,否则将成为死循环。}while(i<101);  // 表达式不可以为空, while循环语句后要有分号“;”cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果20 21040 82060 183080 3240100 5050101 5050hs 
Program ended with exit code: 0
*/

4.3 for循环

  1. for循环格式:for(表达式1;表达式2;表达式3){语句}。
  2. 表达式1:该表达式通常是一个赋值表达式,负责设置循环的起始值,也就是给控制循环的变量赋初值。
  3. 表达式2:该表达式通常是一个关系表达式,用控制循环的变量和循环变量允许的范围值进行比较。
  4. 表达式3:该表达式通常是一个赋值表达式,对控制循环的变量进行增大或减小。
    5.for循环语句的执行过程:(1)先求解表达式1。
    (2)求解表达式2,若其值为真,则执行for语句中指定的内嵌语
    句,然后执行(3)。若表达式2值为假,则结束循环,转到(5)。
    (3)求解表达式3。
    (4)返回(2)继续执行。
    (5)循环结束,执行for语句下面的一个语句。
/*
for(表达式1;表达式2;表达式3)
{语句}
*/#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 使用do{}while();循环计算1~100的累加int i=0,sum=0;for(i=0; i<101; ++i)  {sum += i;        // 当i小于101时,一直执行sum += i; 然后i自增。}cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果
101 5050
hs
Program ended with exit code: 0
*/

4.4 循环控制

  1. 循环控制: 包含两方面的内容,一方面是控制循环变量的变化方式,一方面是控制循环的跳转。
  2. break:中断循环。
/*
break:中断循环
*/
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 循环计算1~100的累加,sum>90时跳出循环。int i=0,sum=0;for(i=0; i<101; ++i){cout<<i<< " " <<sum<<endl;if (sum>90)break;   // 如果遇到循环嵌套的情况,break语句将只会使程序流程跳出包含它的最内层的循环结构,只跳出一层循环。sum += i;    // 当i小于101时,一直执行sum += i; 然后i自增。}cout<<i<< " " <<sum<<endl;cout<< "hs " <<endl;return 0;
}/* 运行结果0 01 02 13 34 65 106 157 218 289 3610 4511 5512 6613 7814 9114 91hs 
Program ended with exit code: 0
*/
  1. continue:跳出本次循环体的执行。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {// 取输出0~10内的偶数int i=0;for(i=0; i<11; ++i){if (i%2 !=0)continue;cout<<i<<endl;}cout<< "hs " <<endl;return 0;
}/* 运行结果0246810hs
*/

4.5 循环嵌套

  1. 循环嵌套:循环有for、while、do…while 3种方式,这3种循环可以相互嵌套.
/*
打印乘法口诀表
*/
#include <iostream>
#include <iomanip>
using namespace std;int main(int argc, const char * argv[]) {// 取输出0~10内的偶数int i=1,j=1;for(i=1; i<10; ++i){for(j=1;j<=i;++j){cout<<setw(2)<<i<<"x"<<j<<"="<<setw(1)<<i*j;}cout<<endl;}cout<<setw(4)<< "hs " <<endl;return 0;
}/* 运行结果1x1=12x1=2 2x2=43x1=3 3x2=6 3x3=94x1=4 4x2=8 4x3=12 4x4=165x1=5 5x2=10 5x3=15 5x4=20 5x5=256x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=367x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=498x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=649x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81hsProgram ended with exit code: 0
*/

参考《C++从入门到精通》

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

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

相关文章

mysql数据库基础语法(未完)

数据库的超级用户是root 一、注释 &#xff08;1&#xff09;“-- ”减号减号空格 注意不要省略空格 &#xff08;2&#xff09;“#” 井号 二、数据库操作 1、创建 CREATE DATABASE [IF NOT EXISTS] <数据库名> [CHARACTER SET utf8] 2、删除 DROP DATABASE …

深入理解CSRF与SSRF攻击原理及防御措施

一、CSRF攻击原理及实例 CSRF简介 CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;即跨站请求伪造&#xff0c;是一种常见的网络攻击手段。攻击者利用已登录用户的cookie&#xff0c;在用户不知情的情况下&#xff0c;伪造请求执行特定操作。 CSRF攻击实…

KamaCoder 100. 岛屿的最大面积 + Leetcode 695. Max Area of Island

题目描述 给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的矩阵&#xff0c;计算岛屿的最大面积。岛屿面积的计算方式为组成岛屿的陆地的总数。岛屿由水平方向或垂直方向上相邻的陆地连接而成&#xff0c;并且四周都是水域。你可以假设矩阵外均…

XYCTF2024 WP

Pwn&#xff1a; hello_world(签到)&#xff1a; 这里的printf没有格式化字符串漏洞&#xff0c;但是我们依旧可以填充栈来利用printf泄露栈上信息 根据我们能填充的字节数来看&#xff0c;我们无法泄露出libc_start_main128的地址&#xff0c;但是可以泄露libc_start_call_m…

一款免费且功能强大的硬件检测工具,绿色小巧免安装!

HWiNFO是一款免费功能强大且广泛使用的硬件信息检测和监控工具&#xff0c;适用于Windows系统。它能够提供详细的硬件信息&#xff0c;包括CPU、主板、内存、硬盘、显卡等组件的详细规格和性能数据。此外&#xff0c;HWiNFO还支持实时监控硬件状态&#xff0c;如温度、电压和风…

计算机的错误计算(四十六)

摘要 再谈浮点运算的不确定性。 计算机的错误计算&#xff08;十&#xff09;、&#xff08;十一&#xff09;以及&#xff08;三&#xff09;探讨了浮点数的表示误差与浮点运算的一些性质。 下面再谈浮点运算的不确定性。 1. 确保两台不同机器上得到完全相同的浮点运算结果是…

042—pandas 数据透视并指定列的排序

数据透视和对列的重新排序是数据分析和报告过程中常用的工具和技术。它们可以帮助你更好地理解和分析数据,从而支持决策和洞察力的发现。透视和重新排序数据可以为数据可视化提供更好的输入。通过对数据进行透视,你可以将数据重新排列成适合绘图的形式,以更清晰地展示趋势、…

【React Hooks原理 - useTransition】

概述 在上一篇中我们介绍了useDeferredValue的基本原理&#xff0c;本文主要介绍一下useTransition这个Hook&#xff0c;之所以在这里提到useDeferredValue&#xff0c;是因为这两个Hook都是在React18引入的进行渲染优化的Hooks&#xff0c;在某些功能上是重叠的&#xff0c;主…

面试面到自闭,字节软件测试岗五轮面试,四个小时灵魂拷问...

准备过程 我自己是本科毕业后在老东家干了两年多&#xff0c;老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身)&#xff0c;毕业这两年多我也没有在大厂待过&#xff0c;因此找坑的时候是非常非常虚的。迫于心慌&#xff0c;我好好思考了一阵来…

<设计模式> 工厂模式

工厂模式 模式介绍&#xff1a;将对象的创建过程封装在工厂类中&#xff0c;客户端代码只需要关心从工厂获取对象的过程&#xff0c;而不需要了解对象的创建细节。这样做的好处包括提高了代码的灵活性和可扩展性&#xff0c;降低了对象之间的耦合度。主要解决接口选择的问题。…

Android 性能优化(二):LeakCanary【用于分析代码是否存在内存泄漏】程序无响应

目录 1&#xff09;内存相关的五种常见问题 2&#xff09;内存溢出和内存泄漏 3&#xff09;LeakCanary是什么? 4&#xff09;LeakCanary如何使用&#xff0c;如何分析&#xff1f; 5&#xff09;LeakCanary监测的内容 提问&#xff1a;程序有时候很卡&#xff0c;经常会出现…

前端开发:Vue2.0桌面组件库-Element

引入Element的步骤&#xff1a; 1.在vscode终端中执行命令&#xff08;需要联网&#xff09; 下载成功 2.在main.js中导入element.ui组件库。 同上&#xff0c;自定义的组件需要先在根组件中引入。 3.访问官网&#xff0c;复制调整代码

变阻器的主要特性和参数有哪些?

变阻器的主要特性和参数有很多&#xff0c;下面将详细介绍几个重要的特性和参数&#xff1a; 1. 电阻范围&#xff1a;滑动变阻器的电阻范围是指其最大电阻值和最小电阻值之间的范围&#xff0c;这个范围通常由制造商指定&#xff0c;用户在选择变阻器时需要根据实际需求选择合…

基于 SSM 的汽车租赁系统

基于 SSM 的电器网上订购系统 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Spring、JSP、MyBatis 工具&#xff1a;MyEclipse/IDEA、Tomcat 引言 汽车租赁是在约定时间内&#xff0c;租赁经营人将租赁汽车&#xff08;包括载货汽车和载客汽车&#x…

【机器学习】机器学习的详细阐述

机器学习&#xff08;Machine Learning, ML&#xff09;是一种通过从数据中学习来自适应改进预测和决策的人工智能技术。以下是对机器学习的详细阐述&#xff1a; 一、机器学习的定义 机器学习主要研究计算机系统对于特定任务的性能&#xff0c;逐步进行改善的算法和统计模型…

AFSim 仿真系统--子系统几何考虑

子系统几何考虑 概述 由于WSF试图表示以多种方式运行的子系统&#xff08;传感器&#xff0c;武器或通信&#xff09;&#xff0c;因此它提供的定义属性的机制&#xff0c;如几何限制&#xff0c;可能相当令人生畏。本文档提供了关于这些机制如何运作以及如何定义行为类似于真实…

Axure RP:打造动态交互的大屏可视化设计利器

Axure大屏可视化是指使用Axure RP这款原型设计工具来创建具有视觉冲击力和数据展示功能的大屏幕界面。Axure以其强大的交互设计和丰富的组件库&#xff0c;成为了实现大屏可视化的重要工具之一。以下是对Axure大屏可视化的详细阐述&#xff1a; 一、Axure在大屏可视化中的优势 …

给视频配背景音乐

介绍 给一段视频&#xff0c;想配个背景音乐&#xff0c;常规办法就是打开抖音或者剪映&#xff0c;咔咔咔一顿操作&#xff0c;完事儿&#xff0c;简单方便。但是如果你作为一个开发者呢&#xff0c;你又不能直接调用抖音剪映的接口吧&#xff08;特别有钱定制除外&#xff0…

ctfshow web入门 中期测评 web503--web516(无web511--web514)

web503 看了之前的文件的发现都没办法利用了 这个页面的源码发现了 layui.use([layer, form], function(){var layer layui.layer,form layui.form;form.on(submit(admin_settings), function(data){$.ajax({url:api/admin_settings.php,dataType:"json",type:po…