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)