2.1for循环
语法 | for(表达式1; 表达式2; 表达式3) 循环语句; |
表达式1 | 初始化部分,用于初始化循环变量 |
表达式2 | 条件判断部分,用于判断循环时候终止 |
表达式3 | 调整部分,用于循环条件的调整 |
实例:在屏幕上打印1-10的数字
while循环 | for循环 |
int main() { int i = 1; while (i <= 10) { printf("%d", i); i++; } return 0; } | int main() { int i = 0; for (i=1; i <= 10; i++) { printf("%d ", i); } return 0; } |
2.2break和continue
break | continue |
int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) break; printf("%d ", i); } return 0; } | int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) continue; printf("%d ", i); } return 0; } |
结果:1234 | 结果:1234 678910;跳过5继续执行i++ |
2.3for语句的循环控制变量
1.不可再for循环体内修改循环变量,防止for循环失去控制。
例如 | 结果 |
int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) continue; printf("%d ", i); i = 12; } return 0; } | 1 |
2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
前闭后开 | 两边都闭 |
int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //0-9 int i = 0; //i代表的是数组的下角标 for (i = 0; i < 10; i++) { printf("%d", arr[i]); } return 0; } | int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; //0-9 int i = 0; //i代表的是数组的下角标 for (i = 0; i < =9; i++) { printf("%d", arr[i]); } return 0; } |
2.4for循环的变种
变种1 | 变种2 | 变种3 |
int main() { //代码1 for (;;) { printf("hehe\n"); } return 0; } | int main() { int i = 0; int j = 0; for (; i < 3; i++) { for (; j < 3; j++) { printf("hhe\n"); } } return 0; } | int main() { int x, y; for (x = 0, y = 0; x < 2 && y < 5; ++x, y++) { printf("hehe\n"); } return 0; } |
for循环中的初始化部分,判断部分,调整部分是可以省略的, 但是判断部分省略意味着判断会恒成立,出现死循环。 | 此时结果为3,内嵌循环结束后默认j=3. | 两个变量 |