循环语句
whiledo-whilefor
1、while
格式:
while (表达式)
{
语句
}
[逻辑]:当程序执行到while语句时,首先计算表达式的值。如果表达式的值为假,则跳出while语句(不执行语句)。如果表达式的值为真,则执行语句,执行语句之后。再计算表达式的值,如果表达式的值为假,则跳出循环♻️,如果表达式的值还为真,则再执行语句,执行完语句之后,再计算表达式的值,重复如此的过程,直到发现表达式的值为假,跳出循环。
[死循环]不能跳出,永远执行
while (1)
{
}
#include
int main ()
{
int i = 0;
while (i < 11)
{
printf("num = %d\n",i++);
}
return 0;
}
[break]跳出循环
[continue]跳出本次循环,继续下一次循环
1加到100的总和
#include
int main ()
{
int i = 1;
int sum= 0;
while (i <= 100)
{
sum += i;
i++;
}
printf(“sum =%d\n”,sum);
return 0;
}
输出1到50的偶数
#include
int main ()
{
int num = 1;
while (num <= 50)
{
if (num % 2 == 0)
{
printf("oushu :%d\n",num);
}
num++;
}
return 0;
}
2、do-while♻️
格式
do
{
语句
}
while(表达式)
[逻辑]当程序执行到do-while语句时,首先执行一次语句,再计算表达式的值,如果表达式的值为假,则跳出循环(do-while)。如果表达式的值为真,再执行语句,执行完语句再计算表达式的值,直到表达式的值为假,跳出循环(do-while)。
do-while至少会被执行一次
#include
int main()
{
int num = 1;
do
{
if(num % 2 != 0){
printf("ji = %d\n",num);
}
num++;
}
while(num <= 50);
return 0;
}
3、for♻️
for(语句1;表达式;语句3)
{
语句2
}
[逻辑]当陈勋执行到for语句时,首先执行语句1,执行完语句1,计算表达式的值,如果表达式的值为假,跳出循环体,如果表达式的值为真,则执行语句2,执行完语句2,再执行语句3,再一次计算表达式的值,如果为假,则跳出循环(for)。如果还为真,则执行语句2 ,再继续执行语句3,如此循环直到表达式的值为假为止(语句1只在运行到for时执行一次)
#include
#include
#include
int main ()
{
int loop = 0;
int sum =0;
for(loop = 1;loop < 101; loop++)
{
sum += loop;
}
printf("sum = %d\n",sum);
return 0;
}
练习
1、用while do-while for 分别写出1~100所有的偶数
2、输入3个数,找出3个数中的最大值,打印
3、找出所有的水仙花数(三位数)
153 = 1^3+5^3+3^3⬇️
#include
int main()
{
int a = 0;
int b = 0;
int c = 0;
int i = 0;
for(i = 100; i < 1000 ; i++)
{
a = i / 100;
b = i % 100 / 10;
c = i % 10;
//pow是多少次方:
if(i == pow(a, 3) + pow(b, 3) + pow(c, 3))
//if(a * a * a + b * b * b + c * c * c == i)
{
printf("%d\n",i);
}
}
return 0;
}
pow数学中的平方
4、终端输入一个年份(整型,不考虑公元前),判断是否时闰年
瑞年:能被400整除或者能被4整除且不能被100整除
5、输入两个正整数,输出他们的最大公约数
输入两个正整数,输出他们的最小公倍数
编写99乘法表
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=12 4*4=16
5*1=55*2=10 5*3=15 5*4=20 5*5=25
6*1=66*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=77*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=88*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=99*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
代码:
#include
int main ()
{
int x = 0;
int y = 0;
for (x = 1;x <= 9;x++)
{
for(y = 1; y <= x;y++)
{
printf("%d*%d=%-3d",x,y,x*y);
}
printf("\n");
}
return 0;
}