2.3 continue介绍
#include<stdio.h> int main() { int i = 1; while (i <= 10) { i = i + 1; if (i == 5) continue;//跳过本次循环continue后边的代码,直接去while循环的判断部分 printf("%d ", n); printf("%d ", i); } return 0; }
我们发现在while循环中也可以出现break和continue,他们的意义和在for循环中是一样的。
但是还是有一些差异。
2.4 练习
用while循环打印1-100以内的奇数
int main() { int i = 1; while (i <= 100) { if(i % 2 == 1)//判断i是奇数的话,就打印i printf("%d ", i); ++i; } return 0; }
//打印数字字符,跳过其他字符 #include <stdio.h> int main() { char ch = '\0'; while ((ch = getchar()) != EOF) { if (ch < '0' || ch > '9') continue; putchar(ch); } return 0; }
补充:
while ((ch = getchar()) != EOF) { putchar(ch); } //getchar()--接收字符 //putchar()--打印字符 //EOF -- end of file 文件结束标志 //在函数读取失败的时候返回了EOF //scanf函数读取成功,返回的是读取到的数据的个数,读取失败返回EOF //而getchar 读取成功返回字符的ASCII码值,读取失败返回EOF
3. do…while循环
3.1 do语句的语法
do 循环语句; while(表达式);
do…while语句执行的流程:
3.2 do语句的特点
实例:使用do…while循环在屏幕上打印1-10的数字
#include<stdio.h> int main() { int i = 1;//初始化 do { printf("%d ", i); i++;//调整 } while (i<=10);//判断 return 0; }
循环至少执行一次,使用场景有限,所以不经常使用。
3.3 do…while循环中的break和continue
//break #include<stdio.h> int main() { int i = 1; do { if (5 == i) break; printf("%d ", i);//1 2 3 4 i++; } while (i<=10); return 0; }
//continue #include<stdio.h> int main() { int i = 1; do { if (5 == i) continue; printf("%d ", i);//1 2 3 4 _ i++; } while (i<=10); return 0; }
4. 练习
1.计算n的阶乘
2.计算1!+2!+…+10!
第一题:
//for循环 //5!=5*4*3*2*1 //4!=4*3*2*1 //3!=3*2*1 #include<stdio.h> int main() { int n; int i; int temp = 1; scanf("%d", &n);//输入 for (i = 1; i <= n; i++) { temp = temp * i; } printf("%d\n", temp); return 0; }
//while循环 #include<stdio.h> int main() { int n; int i=1; int temp=1; scanf("%d", &n);//输入 while (i <= n) { temp = temp * i; i++; } printf("%d\n", temp); return 0; }
第二题:
#include<stdio.h> int main() { int i; int temp = 1; int sum = 0; for (i = 1; i <= 10; i++) { temp *= i;//求每个数字的阶乘 sum += temp;//求和,相当于:sum=sum+temp; } printf("%d\n", sum); return 0; }
结束语
循环语句到这里就结束啦!想要完全的掌握,还需要不断地练习。