循环
作业:
1,月的天数
1 #include <stdio.h> 2 3 int main() 4 { 5 int n; 6 scanf("%d", &n); 7 8 switch (n) 9 { 10 //1 3 5 7 8 10 12 31天 11 case 1: 12 case 3: 13 case 5: 14 case 7: 15 case 8: 16 case 10: 17 case 12: 18 printf("31天"); 19 break; 20 21 case 4: 22 case 6: 23 case 9: 24 case 11: 25 printf("30天"); 26 break; 27 28 case 2: 29 printf("29天"); 30 break; 31 32 //case 这个分支不分先后顺序 33 //case 可以合并 注意:合并之后只有一个break 34 //三目运算符 35 } 36 37 return 0; 38 }
2,求1+2+3+4+5。。。。。。。。。+100的总和
1 #include <stdio.h> 2 3 int main() 4 { 5 int number = 1, sum = 0; 6 7 while (number <= 100) 8 { 9 sum = sum + number; 10 number++; 11 } 12 13 printf("%d", sum); 14 return 0; 15 }
循环:有些事情可以反复执行 算法里面三大结构之循环结构。For循环 while do。。。While goto
一、while循环
1、形式:
while (表达式) //
{
//语句
}
表达式 每一次循环都要判定表达式的值 如果为真(表达式的值为1)执行循环 否则不再执行循环
为假的时候不循环(跳出循环),执行后面的代码。
执行流程:(1)第一次进入while循环执行b前,先判断a。
(2)根据条件判断是否执行b和c,如果条件判断a为真(true),继续执行循环主
体;若条件判断值a为假(false),则跳出循环不再执行b 代码。继续执行循
环后面的代码
(3)执行完b 后,继续判断a是否满足条件。由于while循环不会自行更改循环控 制变量的内容,所以while循环中为循环控制变量赋值的工作要由设计者自己来 做,完成后再回到步骤(2)重新判断是否继续执行循环。
二、Do.....while
do
{
语句;
} while (表达式);
先执行一次循环里面的代码,然后对表带是求值,值为真接着循环,值为假跳出循环。
语句先执行一次,在进行判断,while先判断后执行。(仅仅只有第一次循环是这样)
1 #include<stdio.h> 2 3 int main() 4 { 5 int tarNumber = 88, inNumber=0; 6 printf("请输入一个数字:\n"); 7 8 do 9 { 10 scanf("%d", &inNumber); 11 12 if (inNumber > tarNumber) 13 { 14 printf("太大了,亲!\n"); 15 } 16 17 if (inNumber < tarNumber) 18 { 19 printf("太小了,亲!\n"); 20 } 21 22 } while (inNumber!=tarNumber); //注意:循环的条件表达式 23 24 printf("恭喜你猜对了,这个数字是:%d",inNumber ); 25 return 0; 26 }
执行步骤:
(1)执行语句a和跳出循环条件b,转(2)
(2)计算while后面括号里表达式的值,若其结果非0,则转入(1),否则转(3)
(3)退出循环,执行循环体下面的语句。
注意:do……while语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次
三、For
for (表达式1; 表达式2; 表达式3)
{
语句;
}
for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。结构如下:
for ( [表达式 1]; [表达式 2 ]; [表达式3] ){语句4}
表达式1:一般为赋值表达式,给控制变量赋初值; 控制变量
表达式2:关系表达式或逻辑表达式,循环控制条件;控制条件
表达式3:一般为赋值表达式,给控制变量增量或减量;增量或减量
//======================【打印10次付出不亚于任何人的努力!】====================================
int i; //声明一个变量i
for (i = 0; i < 10; i++) //1、给i赋值为0 2、判断i<10 为真执行循环 为假不执行
{
printf("付出不亚于任何人的努力!\n");
}
四、跳出循环用break(跳出) 或者continue(继续)
Break :不执行循环里面break后面的语句,直接跳出循环去执行后面语句。
Continue:不执行循环里面continue后面的语句,但是继续循环。
五、循环嵌套
一个循环体语句中又包含另一个循环语句,称为循环嵌套
1 #include<stdio.h> 2 3 int main() 4 { 5 int i, j; 6 7 for (i = 0; i < 9; i++) //循环9次 第一次循环 8 { 9 for (j = 0; j < 9; j++) //循环9次 循环9次 10 { 11 printf("*"); 12 } 13 } 14 return 0; 15 }
打印三角形 就是在找外部循环i的值和内部循环次数的规律 杨辉三角形
1 #include <stdio.h> 2 3 int main() 4 { 5 int i, j; 6 for (i = 0; i < 5; i++) // 0 1 2 3 4 7 { 8 for (j = 0; j < 5 - (i + 1); j++) // 4 3 2 1 0 9 { 10 printf(" "); 11 } 12 for (j = 0; j < 2 * i + 1; j++) // 1 3 5 7 9 13 { 14 15 printf("*"); 16 17 } 18 printf("\n"); 19 } 20 21 return 0; 22 }