四种语句实现循环
goto | while | do···while | for | |
---|---|---|---|---|
一般形式 | goto语句标点; | while(表达式)语句; | do 循环语句 while(表达式); | for(循环变量赋初值;循环条件;循环变量增值)语句 |
特点 | 限制使用会使程序流程无规律可读性差 | 先判断表达式后执行语句 | 先执行语句后判断表达式 | 不仅可用于循环次数已定确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况。 |
- while型循环
int main()
{
int i, sum = 0;
i = 1;
while(i <= 100)
{
sum = sum + i;
i++;
}
printf("%d\n", sum);
return 0;
}
- do···while型循环
#include<stdio.h>
int main()
{
int i, sum = 0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf("%d\n", sum);
return 0;
}
- for循环
#include<stdio.h>
int main()
{
int i;
for(i = 100; i <= 200; i++)
{
if(i%3 == 0)
continue;
printf("%d", i);
}
printf("\n");
}
- 循环嵌套
一个循环体中包含有一个完整的循环体。3种循环可以相互嵌套。
break语句和continue语句
break | continue | |
---|---|---|
一般形式 | break; | continue; |
区别 | 结束本次循环,不再判断执行循环的条件是否成立 | continue语句只结束本次循环而不是终止整个循环的执行。 |
求两个正整数的最大公约数
#include<stdio.h>
int main()
{
int m, n, r, a, b, c;
scanf("%d %d", &m, &n);
b = m * n;
do
{
r = m % n == 0;
m=n;
n=r;
}
while(r = 0);
printf("%d\n", m);
a = b / m;
printf("%d",a);
}