1.循环
C语言中循环有三种:
while循环
do..while循环
for循环
2.while循环
语句格式:
do do{循环语句; 循环语句;
while(表达式); }while(表达式);
循环外语句; 循环外语句;
do..while循环首先执行一次,然后判断表达式,为真就继续执行循环否则结束循环
while(表达式)之后有分号
如果循环体只有一条语句,花括号可以省略,如果多条语句则不能省略
eg.例,使用while循环打印1-100内能被9整除的数,的和
int i=1;//循环变量
int sum=0;
printf("1-100内,能被9整除的有:\n");
while (i<=100) {
if(i%9==0){
printf("%d\t",i);
sum+=i;
}
i++;
}
printf("\n和为%d\n",sum);
3.do...while循环
do do{循环语句; 循环语句;
while(表达式); }while(表达式);
循环外语句; 循环外语句;
do..while循环首先执行一次,然后判断表达式,为真就继续执行循环否则结束循环
while(表达式)之后有分号
如果循环体只有一条语句,花括号可以省略,如果多条语句则不能省略
eg.使用do..while循环打印1-100以内能被7整除的数字
int num=1;
printf("1-100中,能被7整除的有:\n");
do {
if (num%7==0) {
printf("%d\t",num);
}
num++;
} while (num<=100);
4.break语句
break语句可以结束switch语句,同样可以结束循环无论循环还有多少次未执行,遇到break语句就会强制结束循环
强制结束的循环之后的代码继续执行
*break只能结束其所在循环
eg.求1-100内的
int sum=0;
for (int i=1; i<100; i++) { //判断是否为素数的外层循环
for (int j=2; j<=i; j++) { //除数
if (j==i) {
printf("%d\t",i);
sum+=i;
}
if(i%j==0){ //能被1,自身以外的数字整除的,
break;
}
}
}
printf("\n sum=%d",sum);
5.continue语句
continue语句用于跳出本次循环,而不结束整个循环,然后继续执行下次循环*continue只能结束其所在循环
eg.求1-10的偶数
int i=0;
printf("1-10以内的偶数有:\n");
while (i<10) {
i++;
if (i%2!=0) {
continue;
}
printf("%d\t",i);
}
6.for循环
for(初始化语句; 判断表达式语句; 改变语句)循环语句;
循环后语句;
for(初始化语句; 判断表达式语句; 改变语句){
循环语句;
}
循环后语句;
循环体如果为一条语句可以省略花括号,多条语句不可以省略.
for循环语句的变化
省略初始化语句for( ;判断语句;改变语句){ 循环体; }
省略条件判断语句
for(初始化语句; ;改变语句){ 循环体; }
省略改变语句
for(初始化语句;判断条件; ){ 循环体; }
省略三个语句
for( ; ; ){ 循环体; }
……
注意死循环的情况
7.循环嵌套
循环之间可以嵌套使用注意区分循环罗列和循环嵌套
循环罗列:
循环1;
循环2;
……
循环嵌套:
循环1{
循环2{
……
}
*常见的为两层嵌套,不建议写多层嵌套
eg. //使用循环嵌套打印如下图形
*
**
***
****
*****
for (int i=0; i<=5; i++) { //行数
for (int j=0; j<=i; j++) { //个数
printf("*");
}
printf("\n");
}
*
***
*****
*******
*********
for (int i=1; i<=5; i++) {
for (int j=1; j<=5-i; j++) {
printf(" ");
}
for (int k=1; k<=2*i-1; k++) {
printf("*");
}
printf("\n");
}
*
***
*****
*******
*****
***
*
int j,k;
int n;
printf("请输入你要打印的菱形行数(奇数行)!\n");
scanf("%d",&n);
for (int i=1; i<=n; i++) {
if (i<=(n+1)/2) {
for (k=1; k<=(n+1)/2-i; k++) {
printf(" ");
}
for (j=1; j<=2*i-1; j++) {
printf("*");
}
printf("\n");
}else{
for (k=1; k<=i-(n+1)/2; k++) {
printf(" ");
}
for (j=1; j<=2*(n-i)+1; j++) {
printf("*");
}
printf("\n");
}
}
*
* *
* *
* *
* *
* *
*
for(int i=1;i<=7;i++){
if (i<5) {
for (int j=1; j<=5-i-1; j++) {
printf(" ");
}
for (int k=1; k<=2*i-1; k++) {
if (k==1||k==2*i-1) {
printf("*");
}else{
printf(" ");
}
}
}
else{
for (int m=1; m<=i-5+1; m++) {
printf(" ");
}
for (int n=1; n<=2*(7-i)+1; n++) {
if (n==1||n==2*(7-i)+1) {
printf("*");
}else{
printf(" ");
}
}
}
printf("\n");
}
随堂笔记为个人学习笔记,若有错误,望指出,谢谢!!