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)