目录:
一、for循环
标识每次循环,循环终止条件,循环间的规律
签到 毕业 天
for 变量=1 变量<100 变量++
int i = 0;
for(i = 1;i<=100;i++){}
1.循环就是重复执行循环体(语句、语句块组成),在C语言中,没一个循环都有一个控制表达式(终止循环的条件),每次循环的时候,都要向控制表达式求值,如果表达式的值为真1,那么继续循环,如果为假,终止循环。
2.c语言中使用循环语句来反复执行特定的代码段,在c语言中循环有三种表达方式:for/while/do while
3.for循环语法格式:
for(表达式1;表达式2;表达式3){
循环体;(一条或多条语句)
}
表达式1:用来标识每一次循环,初始值,
表达式2:判断循环是否执行的控制语句,
表达式3:每次循环之间的规律,步长
4.循环的执行顺序,
第一次执行的时候,
执行表达式1 -> 表达式2(真)-> 循环体
执行表达式1 -> 表达式2(假)-> 终止循环
第二次执行的时候,
执行表达式3 -> 表达式2(真)-> 循环体
执行表达式3 -> 表达式2(假)-> 终止循环
第n次
执行表达式3 -> 表达式2(真)-> 循环体
执行表达式3 -> 表达式2(假)-> 终止循环
求:1~100的和
练习:使用循环输入四个数,求最大值、最小值、和。
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 0; 6 //i=1:循环的标识 7 //i<=100:终止条件 8 //i++:循环的规律 9 for(i = 1; i <= 100; i++){ 10 printf("%d ",i); 11 } 12 printf("\n"); 13 14 //求1~100的和 15 int sum = 0; 16 for(i = 1;i <= 100;i++){ 17 sum += i; 18 } 19 printf("1~100的和是:%d\n",sum); 20 21 //使用循环输入四个数,求最大值、最小值、和。 22 int num = 0,sum2 = 0,max = 0,min = 100; 23 for(i = 1; i <= 4; i++){ 24 printf("输入第%d个数字:\n",i); 25 scanf("%d",&num); 26 if(num > max){ 27 max = num; 28 } 29 if(num < min){ 30 min = num; 31 } 32 sum2 += num; 33 } 34 printf("max:%d,min:%d,sum2:%d\n",max,min,sum2); 35 36 return 0; 37 }
练习:输入10个数,求最大值、最小值、和、差、积、商。
练习:输出100内的奇数,不能被2整除
练习:输出100内的偶数,能被2这出
1 #include <stdio.h> 2 3 //练习:输入10个数,求最大值、最小值、和、差、积、商。 4 void test1() 5 { 6 int num = 0,sum = 0,ji = 1,cha = 0,shang = 1; 7 int i = 0,max = 0,min = 100; 8 for( i = 1; i <= 10; i++){ 9 printf("输入第%d个数:\n",i); 10 scanf("%d",&num); 11 if(num > max){ 12 max = num; 13 } 14 if(num < min){ 15 min = num; 16 } 17 sum += num; 18 cha -= num; 19 ji *= num; 20 shang /= num; 21 } 22 printf("max:%d,min:%d,sum:%d,ji:%d,cha:%d,shang:%d\n",max,min,sum,ji,cha,shang); 23 } 24 25 //练习:输出100内的奇数,不能被2整除 26 void test2() 27 { 28 int i = 0; 29 //不能被2整除 30 for(i = 1; i <=100; i++){ 31 if(i % 2 != 0){ 32 printf("%d ",i); 33 } 34 } 35 } 36 37 //练习:输出100内的偶数,能被2这出 38 void test3() 39 { 40 int i = 0; 41 for(i = 1; i <=100; i++){ 42 if(i % 2 == 0){ 43 printf("%d ",i); 44 } 45 } 46 printf("\n"); 47 } 48 int main() 49 { 50 test1(); 51 //test2(); 52 //test3(); 53 return 0; 54 }
5.for(;;)这样写编译不报错,但;号不能省略,这是个死循环,Ctrl + c 终止循环。
二、break、continue
break关键字,不但可以终止switch语句,也可以终止for循环语句。
continue关键字,可以终止当次循环,继续下一次循环。
练习:输入一个数,得到数的长度(位数),如1234,长度就是4,
#include <stdio.h> int main() { int num = 0,i = 0,length = 0; printf("输入一个数:\n"); scanf("%d",&num); printf("%d",num); for(i = 0; i <= 100; i++){ length++; num /= 10; if(num == 0){ break; } } printf("长度是:%d\n",length); return 0; }
三、循环嵌套(多重循环)
for(){
for(){
...
}
}
#include <stdio.h> int main() { int i = 0,j = 0; for(i = 1; i <= 5; i++){ for(j = 1; j <= 5; j++){ printf("%d%d ",i,j); } printf("\n",i,j); } return 0; }
1.如果两重循环,外面的循环执行一次,里面的循环执行一遍,
2.外面的循环和行有关系,里面的循环和列有关系
练习:
1.*****
2. 3. 4.
* * *****
** *** ***
*** ***** *
**** *******
*****
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 0,j = 0; 6 //打印***** 7 for(i = 1; i <= 5; i++){ 8 printf("*"); 9 } 10 printf("\n"); 11 /* 12 2. 3. 4. 13 * * ***** 14 ** *** *** 15 *** ***** * 16 **** ******* 17 ***** 18 */ 19 //2. 20 for(i = 1; i <= 5; i++){ 21 for(j = 1; j <= i; j++){ 22 printf("*"); 23 } 24 printf("\n"); 25 } 26 printf("\n"); 27 //3. 28 for(i = 1; i <= 4; i++){ 29 for(j = 1; j <= i * 2 - 1; j++){ 30 printf("*"); 31 } 32 printf("\n"); 33 } 34 printf("\n"); 35 //4. 36 for(i = 3; i >= 1; i--){ 37 for(j = 1; j <= i * 2 - 1; j++){ 38 printf("*"); 39 } 40 printf("\n"); 41 } 42 printf("\n"); 43 //4. (另一种写法) 44 int rows = 3; 45 for(i = 1; i <= 3; i++){ 46 for(j = 1; j <= 2 * (rows - i) + 1; j++){ 47 printf("*"); 48 } 49 printf("\n"); 50 } 51 return 0; 52 }
九九乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
.........
#include <stdio.h> int main() { int i = 0,j = 0; for(i = 1;i <= 9;i++){ for(j = 1;j <= i; j++){ printf("%d*%d=%d\t",j,i,i*j); } printf("\n"); } return 0; }
四、while
1.while循环与for循环完全互通,除了语法格式稍有区别,其工作原理,工资方式一样。
2.语法格式;
表达式1;
while(表达式2){
循环体;
表达式3;
}
3.执行顺序
第一次执行循环的时候,
表达式1 -> 表达式2(真) -> 循环体 -> 表达式3
表达式1 -> 表达式2(假) -> 终止循环
第二次循环的时候,
表达式2(真)-> 循环体 -> 表达式3
表达式2(假)-> 终止循环
作业:重构for循环练习
#include <stdio.h> int main() { int i = 1; while(i < 11){ printf("i:%d\n",i); i++; } return 0; }
五、do while
先执行循环体,在进行判断。do while与for、while最大的不同,就算条件不成立,至少会执行一次
语法格式:
表达式1;
do{
循环体;
表达式3;
}while(表达式2);
执行顺序
第一次执行的时候
表达式1 -> 循环体 -> 表达式3 -> 表达式2(真)-> 继续循环
表达式1 -> 循环体 -> 表达式3 -> 表达式2(假)-> 终止循环
第二次循环的时候
循环体 -> 表达式3 -> 表达式2(真)-> 继续循环
循环体 -> 表达式3 -> 表达式2(假)-> 终止循环
作业:重构for循环的练习
#include <stdio.h> int main() { int i = 1; do{ //i++;放在这里结果会出现改变 printf("i:%d\n",i); i++; }while(i <= 10); return 0; }
六、三个循环的对比
1.可以控制循环的范围使用for循环
2.关注循环规则使用while循环
2.第一次不需要进行判断的时候do...while
七、空语句
空语句常用来编写空循环体的循环,
c程序习惯性的把空语句单独放一行,
如果循环体只有一行,可以省略{}