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.pswp.cn/news/444878.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444878.shtml
英文地址,請注明出處:http://en.pswp.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-…