1// for循环画正16边形代码
2#include "CTurtle.hpp"
3#include <bits/stdc++.h>
4using namespace std;
5using namespace cturtle;
6
7int main() {
8 // 创建一个画布屏幕
9 TurtleScreen scr;
10 // 创建一个画图图标
11 Turtle turtle(scr);
12
13 int bianshu = 16;
14 int bianchang = 20;
15 double jiaodu = 360.0 / bianshu;
16
17 for (int i = 0; i < bianshu; ++i) {
18 turtle.forward(bianchang);
19 turtle.right(jiaodu);
20 }
21
22 // 暂停程序
23 system("pause");
24 // 程序结束
25 return 0;
26}1#include <bits/stdc++.h>using namespace std;
2
3int main() {
4 int m, n;
5 cin >> m >> n;
6 int sum = 0;
7 for (int i = m; i <= n; ++i) {
8 if (i % 17 == 0) {
9 sum += i;
10 }
11 }
12 cout << sum << endl;
13 return 0;
14}1#include <bits/stdc++.h>using namespace std;
2
3int main() {
4 for (int ji = 1; ji <= 50; ++ji) {
5 int tu = 50 - ji;
6 if (ji * 2 + tu * 4 == 160) {
7 cout << ji << " " << tu << endl;
8 break;
9 }
10 }
11 return 0;
12}1#include <bits/stdc++.h>using namespace std;
2
3int main() {
4 int n;
5 cin >> n;
6 int sum1 = 0;
7 int sum2 = 0;
8 for (int i = 1; i <= n; i++) {
9 if (i % 2 == 0) {
10 sum1 += i;
11 } else {
12 sum2 += i;
13 }
14 }
15 cout << sum1 << " " << sum2 <<endl;
16 return 0;
17}在上一节课中我们学习了while循环,while循环的初始化、条件判断、变量更新分散在不同的位置。for循环把这三个部分集中写在一行,结构更紧凑,特别适合已知循环次数的场景。
for (①定义循环变量; ②循环条件判断; ③更新循环变量) {
④循环操作
}for循环内部代码运行顺序:
使用for循环时需要注意以下几点:
循环变量i从2开始,每次递增2,累加到sum中。
int sum = 0;
for (int i = 2; i <= 100; i += 2) {
sum += i;
}
cout << sum << endl;通过修改for循环的三个部分(初始化、条件、更新),可以实现不同的循环方式:
正序循环:循环变量从小到大递增,是最常见的写法。
int sum = 0;
for (int i = 1; i <= 100; ++i) {
sum += i;
}倒序循环:循环变量从大到小递减,适用于需要从后往前遍历的场景。
int sum = 0;
for (int i = 100; i > 0; --i) {
sum += i;
}步长循环:循环变量每次增加或减少指定的值(步长),适用于需要间隔取值的场景。
int sum = 0;
for (int i = 1; i <= 100; i += 2) {
sum += i;
}break语句用于立即跳出整个循环,执行循环后面的代码。
1for (int i = 1; i <= 10; ++i) {
2 if (i % 7 == 0) {
3 cout << i << endl; // 输出 7
4 break; // 找到后立即跳出循环
5 }
6}continue语句用于跳过本次循环剩余的代码,直接进入下一次循环。
1for (int i = 1; i <= 10; ++i) {
2 if (i % 2 == 0) {
3 continue; // 跳过偶数,不执行下面的输出
4 }
5 cout << i << " "; // 只输出奇数:1 3 5 7 9
6}作用域是指变量可以被使用的范围。变量只能在它被创建的那个大括号范围内使用,超出范围就无法访问。理解作用域可以帮助我们避免很多常见的编程错误。
在一个大括号内创建的变量叫做局部变量,只能在该大括号内使用,出了大括号就无法访问。
for (int i = 0; i < 5; ++i) {
int x = i * 2; // x 只在循环体内有效
}
// cout << x; // 错误!x 在这里无法使用
// cout << i; // 错误!i 在这里也无法使用若大括号外和大括号内有同名变量,它们是两个独立的变量,互不影响:
1int a = 10;
2{
3 int a = 20; // 这是一个新的变量,和外面的 a 无关
4 cout << a << endl; // 输出 20
5}
6cout << a << endl; // 输出 10,外部的 a 没有被改变但如果大括号内没有重新定义同名变量,而是直接修改,则会影响外部变量:
int a = 10;
{
a = 20; // 没有 int,不是定义新变量,而是修改外部的 a
}
cout << a << endl; // 输出 20,外部的 a 被改变了在main函数外部创建的变量叫做全局变量,可以在该文件的任何地方使用。
1#include <bits/stdc++.h>
2using namespace std;
3
4int count = 0; // 全局变量,所有函数都可以使用
5
6int main() {
7 count = 10;
8 cout << count << endl; // 输出 10
9 return 0;
10}注意: 一般不建议使用全局变量,因为全局变量可以在任何地方被修改,容易导致代码难以维护和调试。
