代码1
#include <stdio.h> int main() { for(;;) { printf("hehe\n"); } //for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题
代码2
#include<stdio.h> int main() { int i = 0; int j = 0; int n = 0; for (i = 1; i <= 10; i++) { for (j = 1; j <= 10; j++) { printf(" 哈哈 "); n++; printf("%d", n); } } return 0; }
for循环也可以嵌套使用,i每次+1,j就要从1变成10,printf(" 哈哈 ");就要执行十次。
代码3
#include<stdio.h> int main() { int i = 0; int j = 0; int n = 0; for (; i <= 10; i++) { for (; j <= 10; j++) { printf(" 哈哈 "); n++; printf("%d", n); } } return 0;
我们可以看到他打印11个哈哈,这是什么原因呢,大家也可以打开VS的监控调试一下,就会发现当i=1的时候循环就结束,这是什么原因,现在我们来探讨一下
是因为当i等于0时,进入循环1,j等于0;进入循环2然后打印第一个hehe,j++等于1,再打印一个哈哈,直到j等于10,打印了10个哈哈,然后出循环2,这时i++等于1,走到循环2,这时由于没有对上一次的j进行初始化,这时的j等于11,不满足循环2,所以无法进入循环2,然后i++等于2,再走到循环2,又因为没有对j进行初始化,所以又不满足循环2的条件,所以呀,直到i++等于到11,都无法再进入循环2,所以这个代码只打印11 个哈哈。
讲到这里大家应该明白了吧
代码4
int x, y; for (x = 0, y = 0; x<2 && y<5; ++x, y++) { printf("hehe\n"); } return 0; }
使用多种变量控制循环,多种条件控制
练习
问循环几次
#include <stdio.h> int main() { int i = 0; int k = 0; for(i =0,k=0; k=0; i++,k++) k++; return 0; }
答案是循环0次
因为k=0就相当于为假,一次也不执行
do while
格式
do { 语句: }while(判断)
do while语句的特点,上去就是干,不管怎么样都会执行一次
#include <stdio.h> int main() { int i = 1; do { printf("%d\n", i); i++; } while (i < 10); return 0; }
打印1到9
do while 的break和continue
#include <stdio.h> int main() { int i = 0; do { if (5 == i) break; printf("%d\n", i); i++; } while (i < 10); return 0; }
我们可以看到break的作用还是跳出循环,现在让我看看continue
#include <stdio.h> int main() { int i = 0; do { if (5 == i) continue; printf("%d\n", i); i++; } while (i < 10); return 0; }
我们可以看到光标再闪,所以进入死循环,现在来解释一下原因
当我们i==5的时候,遇到continue,退到do开始,i的值一直不变,所以一直死循环。
今天的分享到这里结束了,如果有错误请大家指出,我们一起加油,也谢谢大家支持。