C++(7)--for循环,break,continue语句

for循环

  • 1.for循环
  • 2.break 语句
  • 3.continue语句
  • 4.while,do-while,for 循环的异同
  • 5.for循环demo 嵌套循环-打印图形
  • 6.python 中的for循环

《老九学堂C++课程》《C++ primer》学习笔记。《老九学堂C++课程》详情请到B站搜索《老九零基础学编程C++入门》
-------------简单的事情重复做,重复的事情用心做,用心的事情坚持做(老九君)---------------

1.for循环

语法

for(表达式1;表达式2;表达式3){循环体}

表达式1:循环变量的初值,可以省略,例如:i = 0, cnt = 10, count = 1
表达式2:循环判断条件,是否继续执行循环,例如:i<10, cnt == 20, count >= 5
表达式3:更新循环变量,可省略, 例如i++,cnt += 2, count–

注意:
1.for(;😉 如果内部没有break 语句,将构成死循环
2.两个分号不能省略

demo1:

for(int i = 0; i < N; i++){cout << "再别康桥" << endl;
}

demo2: 循环输入6个🈷️ 的工资数量,计算6个月工资的平均值

//1.定义变量
//2.书写循环
//3.循环体
double salary = 0;
double sumSalary = 0;
double avgSalary = 0;
const int YEAR = 6;
for(int i = 0; i < YEAR; i++){cout << "请输入第" << i + 1 << "个月的工资:";cin >> salary;sumSalary += salary;
}
avgSalary = sumSalary / YEAR;
cout << "6个月平均工资为:" << avgSalary << endl;

demo2: 打印月历。1997年7月的月历,已知1997年7月1日为星期二

int main(){//使用循环打印1997年7月份的日历//已知1997年7月1日是星期二//1.定义变量int day = 31; // 7月一共有31天int dayOfWeek = 2; //7月的第一天是周二cout << "一\t二\t三\t四\t五\t六\t七" << endl;for(int i = 0; i < dayOfWeek -1; i++){cout << "\t";          //一开始的空格}for(int i = 1; i <= day; i++){cout << i;if ((i + dayOfWeek -1) % 7 == 0){cout << "\n";}else{cout << "\t";}}return 0;
}

输出

一	二	三	四	五	六	七1	2	3	4	5	6
7	8	9	10	11	12	13
14	15	16	17	18	19	20
21	22	23	24	25	26	27
28	29	30	31	

2.break 语句

作用:遇到break 跳出循环,执行循环之后的语句,可用于switch 与 循环结构。
demo: 用户猜商品价格,依据用户猜测的次数,给出相应的奖励

int main(){// 幸运53猜商品价格// 根据猜的次数给予不同的奖励const double PRICE = 5000.0;double guessPrice;int guessCount = 0;for(;;){guessCount += 1;cout << "请输入神秘商品的价格:";cin >> guessPrice;if(guessPrice > PRICE){cout << "大了!" << endl;}else if(guessPrice < PRICE){cout << "小了!" << endl;}else{cout << "恭喜猜对了" << endl;break;}}if(guessCount == 1){cout << "中了大奖" << endl;}else if(guessCount == 2){cout << "中了二等奖奖" << endl;}else{cout << "中了安慰奖" << endl;}return 0;
}

3.continue语句

作用:遇到continue 语句,跳过本次循环,继续下次循环,只能用于循环结构
demo: 循环输入5个玩家的消费,统计消费额度低于500的玩家的数量

int main(){double money;int count = 0;for(int i = 0; i < 5; i++){cout << "请输入当前玩家的消费额度:";cin >> money;if(money >= 500){continue;}count += 1;}cout << "消费金额少于500元的用户有" << count << "个" << endl;return 0;
}

4.while,do-while,for 循环的异同

相同点:重复执行某一动作
不同点:判断的位置不同,执行的顺序不同。while() 小括号内填条件,for()小括号内包括了循环三要素。
适用情况:for循环适合于循环次数确定,循环次数不确定时适用while循环。

循环语句可以看陈强化版的if 语句。

注意:break 语句 和 continue 语句都只是作用与本层循环。在循环嵌套的情况下,其他层循环依旧遵循原自己的运行机制

5.for循环demo 嵌套循环-打印图形

demo 1: 输出一行

	// 单个循环输出是一行或者一列的内容,是线性结构for(int i = 0; i < 10; i++){cout << 1 << ";";}

demo 2:输出一个矩形

	// 嵌套循环可以输出 一个矩形,有换行很归零操作// 外层循环控制行,外层循环控制列for(int i = 0; i < 5; i++){for(int j = 0; j < 5; j++){cout << "*" << "\t";}cout << endl;}
*       *       *       *       *
*       *       *       *       *
*       *       *       *       *
*       *       *       *       *
*       *       *       *       *

demo3: 打印三角形

	//打印三角形,实际就是讨论i和j的关系for(int i = 0; i < 5; i++){for(int j = 0; j < 2 * i + 1; j++){cout << "*" << "\t";}cout << endl;}
*
*       *       *
*       *       *       *       *
*       *       *       *       *       *       *
*       *       *       *       *       *       *       *       *

demo4: 打印菱形

int main(){// 菱形的上半部分for(int i = 0; i <=4; i++){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){cout << "*";}cout << endl;}//菱形的下半部分for(int i = 3; i >=0; i--){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){cout << "*";}cout << endl;}return 0;
}

输出

     *****************************************

demo4 : 打印字母形状的菱形,每一行的字母不一样,由行控制变量实现变化

	// 打印菱形// 菱形的上半部分for(int i = 0; i <=4; i++){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){cout << char('A' + i);}cout << endl;}//菱形的下半部分for(int i = 3; i >=0; i--){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){cout << char('A' + 4 + i);}cout << endl;}return 0;

输出

     ABBBCCCCCDDDDDDDEEEEEEEEEHHHHHHHGGGGGFFFE

demo5:打印空心的菱形,每一行的第一个* 和最后一个* 被打印。

	// 打印空心菱形// 每一行只有第一个和最后一个*被打印出来了for(int i = 0; i <=4; i++){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){if(j == 0 || j == 2 * i){cout << '*';}else{cout << " " ;}}cout << endl;}//菱形的下半部分for(int i = 3; i >=0; i--){for(int j = 0; j <= 4 - i; j++){cout << " ";}for(int j = 0; j <= 2 * i; j++){if(j == 0 || j == 2 * i){cout << '*';}else{cout << " ";}}cout << endl;}

输出

     ** **   **     **       **     **   ** **

6.python 中的for循环

语法:循环变量in range 结构。

n = 5
for i in range(n):print(i)

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

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

相关文章

关系数据库——数据库恢复

实现技术 恢复操作的基本原理&#xff1a;冗余 恢复机制涉及的两个关键问题 如何建立冗余数据 数据转储&#xff08;backup&#xff09;登录日志文件&#xff08;logging&#xff09; 如何利用这些冗余数据实施数据库恢复数据转储 数据转储定义&#xff1a; 转储是指DBA将整个数…

Lua语言中pairs和ipairs的区别

tbl = {"alpha", "beta", ["one"] = "uno", ["two"] = "dos"} for key, value in ipairs(tbl) do print(key, value) end --pairs() --pairs()函数基本和ipairs()函数用法相同, 区别在于pairs()可以遍历整个table…

算法(22)-leetcode-剑指offer6

leetcode-剑指offer-545.面试题55- 二叉树的深度46.面试题55-2-平衡二叉树47.面试题57-1-和为s的两个数字-双指针48.面试题57-2-和为s 的连续正数序列-双指针49.面试题56-数组中出现数字的次数-位运算leetcode-136 只出现一次的数字Ileetcode-137 只出现一次的数字IIleetcode-2…

leetcode160 相交链表

编写一个程序&#xff0c;找到两个单链表相交的起始节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出&#xff1a;Reference of the node…

lua的一些api文档总结吧

打算记录一些我认为重要的常用的api: 1. 建一个新表 void lua_createtable (lua_State *L, int narr, int nrec) 创建一个新的table, 并把它放在栈顶. narr和nrec分别指定该table的array部分和hash部分的预分配元素数量 无返回值 栈高度+1, 栈顶元素是新table #define l…

关于mysql的一些时间格式和字符的问题

最近在做一些游戏的数据分析&#xff0c;需要对大量数据的用户行为进行处理存库&#xff0c;其中有个数据库字段是datetime类型的&#xff0c;这个以前都没用过&#xff0c;我以前都喜欢用int来存放时间戳&#xff0c;但这次这样用&#xff0c;我就得在数据库中转换了&#xff…

算法(17)-leetcode-剑指offer1

leetcode-剑指offer-11.面试题3-数组中的重复数字2.面试题04-二维数组中的查找3.面试题05-替换空格4.面试题06-从尾到头打印链表5.面试题07-重建二叉树6.面试题09-两个堆栈实现队列7.面试题10-1-斐波那契数列8.面试题10-2-青蛙跳台阶问题9.面试题11-旋转数组的最小数字10.面试题…

蚁群算法的一些东西

运行了三个TSP经典用例,基本符合要求。仅仅是一份按照蚁群算法的原理写的代码,没有做任何优化。 // bigSearch.cpp : 定义控制台应用程序的入口点。 // #include<iostream> #include<math.h> #include<time.h> using namespace std; //该程序是以…

leetcode101 对称二叉树

给定一个二叉树&#xff0c;检查它是否是镜像对称的。 例如&#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 说明: 如果你可以运用递归和迭…

Linux内核OOM机制的详细分析

Linux 内核有个机制叫OOM killer&#xff08;Out-Of-Memory killer&#xff09;&#xff0c;该机制会监控那些占用内存过大&#xff0c;尤其是瞬间很快消耗大量内存的进程&#xff0c;为了防止内存耗尽而内核会把该进程杀掉。典型的情况是&#xff1a;某天一台机器突然ssh远程登…

算法(18)-leetcode-剑指offer2

leetcode-剑指offer-211.面试题13-机器人的运动范围-广度优先搜索12.面试题14-1-剪绳子13.面试题14-2-剪绳子214.面试题16-二进制中1的个数-布莱恩克尼根15.面试题16-数值的整数次方-快速幂解析法16.面试题17-打印从1到最大的n位数17.面试题18-删除链表的节点18.面试题19-正则匹…

rabbitmq技术的一些感悟(一)

Rabbitmq 初识rabbitmq RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难。不过它也只有几个关键概念,这里简单介绍 几个概念说明: Broker

leetcode21 合并两个链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 思路&#xff1a;链表归并。 /*** Definition for si…

rabbitmq技术的一些感悟(二)

上一节文章主要是说了一下rabbitmq的安装以及搭建好环境的一些命令,以及常用的api调用,其实自从google被封掉之后,我之前收藏的很多技术连接都已经被禁止访问了,这个是多么可悲的一件事情啊,说多了都是泪。 首先,我先写一段消费者的模块,建立连接,初始化amq以及销毁连接…

算法(19)-leetcode-剑指offer3

leetcode-剑指offer-321.面试题22-链表中的倒数第k个节点22.面试题24-反转链表23.面试题25-合并两个排序链表-递归24.面试题26-树的子结构25.面试题27-二叉树的镜像26.面试题28-对称二叉树27.面试题29-顺时针打印矩阵28.面试题30-包含min函数的栈29.面试题31-栈的押入&#xff…

高效解析xml的总结,闲下来写的

需要这么几个库&#xff0c;直接放在你的代码工程里即可&#xff1a; #include "rapidxml.h" #include "rapidxml_utils.h" int ReBornBossConf::loadConf(const char* szFileName){ rapidxml::file<char> fdoc(szFileName); rapidxml::xml_docum…

leetcode35 插入的位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 思路&#xff1a;二分查找 public class Solution {public int searchInsert(i…

算法(20)-leetcode-剑指offer4

leetcode-剑指offer-433.面试题33-二叉搜索树的后序遍历序列34.面试题34-二叉树中和为某一值的路径35.面试题35-复杂链表的复制36.面试题36-二叉搜索树与双向链表37.面试题37-序列化二叉树38.面试题38-字符串的排列39.面试题39-数组中出现次数超过一半的数字40.面试题40-最小的…

关于linux的进程中的各个线程cpu占用情况的分析和查看

我们经常会在新开的服搭建一个游戏的服务器,有时候要进行压力测试,那么如何来看呢,一般我们会通过top命令查看各个进程的cpu和内存占用情况,获得到了我们的进程id,然后我们也许会通过pstack命令查看里边的各个线程id以及对应的线程现在正在做什么事情,分析多组数据就可以…

算法(21)-leetcode-剑指offer5

leetcode-剑指offer-443.面试题43-1&#xff5e;n整数中1出现的次数44.面试题44-数字序列中某一位的数字45.面试题45-把数组排成最小的数-快排变种46.面试题46-把数字翻译成字符串47.面试题47-礼物的最大价值-dp48.面试题48-最长不含重复字符的子字符串-滑动窗口法49.面试题49-…