一、 if语句和goto 语句组合循环语句
goto 语句标号;
例:1+2+3+…+100
#include "stdio.h"
main()
{ int I,sum=0;
I=1;
Aa:if(I<=100)
{ sum=sum+I; I++; goto Aa;}
printf(“%d”,sum);}
{ sum=sum+I; I++; goto Aa;}
分析:第一步:sum=0,I=1, I<=100
执行:sum=sum+I;
=1
I++;
I=2;
goto Aa;
Aa:if(I<=100)
2<=100
第二步:sum=1,I=2,I<=100
执行:sum=sum+I;
=3
I++;
I=3;
goto Aa;
Aa:if(I<=100)
3<=100
第三步:sum=3,I=3,I<=100
…
问题:10以内奇数的和
解答:
#include <stdio.h>
int main() {
int i=1,sum=0;
loop:if (i<=10) {
sum+=i;
i+=2;
goto loop;
}
printf("10以内奇数的和:%d",sum);
return 0;
}
问题:10以内偶数的和
解答:
#include <stdio.h>
int main() {
int i=0,sum=0;
loop:if (i<=10) {
sum+=i;
i+=2;
goto loop;
}
printf("10以内奇数的和:%d",sum);
return 0;
}
二、用while语句实现循环
while (表达式) 语句
分析:先判断表达式,再执行语句
当表达式的值为非0时,重复执行语句,
当表达式的值为0时,停止执行语句
例:1+2+3+…+100
#include "stdio.h"
void main(){
int I=1,sum=0;
while(I<=100){
sum=sum+I; I++;
}
printf(“%d”,sum);
}
问题:10以内奇数的和
解答:
#include "stdio.h"
void main(){
int I=1,sum=0;
while(I<=10){
sum=sum+I;
I+=2;
}
printf("%d",sum);
}
问题:10以内偶数的和
解答:
#include "stdio.h"
void main(){
int I=0,sum=0;
while(I<=10){
sum=sum+I;
I+=2;
}
printf("%d",sum);
}
三、用do …. while 语句实现循环
do
循环体语句
while (表达式);
while (表达式); 有分号
分析:先执行一次循环体语句,然后判断表达式,
当表达式的值为非0时,返回重新执行循环体语句,
反复执行,直到表达式的值为0时,循环结束.
例:1+2+3+…+100
#include "stdio.h"
void main()
{ int I=1,sum=0;
do
{ sum=sum+I; I++;}
while(I<=100);
printf(“%d”,sum);}
问题:10以内奇数的和
解答:
#include <stdio.h>
int main() {
int i=1,sum=0;;
do {
sum+=i;
i+=2;
}while (i<=10);
printf("%d",sum);
}
问题:10以内偶数的和
解答:
#include <stdio.h>
int main() {
int i=0,sum=0;;
do {
sum+=i;
i+=2;
}while (i<=10);
printf("%d",sum);
return 0;
}
四、用for语句实现循环
for(表达式1;表达式2;表达式3)
语句
分析: 表达式1 循环变量初值
表达式2 循环条件
表达式3 循环变量增值或减值
for(i=1;i<=100;i++)
注:表达式1在整个程序中,只执行了一次。
执行过程:
(1) 求解表达式1
(2) 求解表达式2, 当表达式2的值为非0,执行语句,
当表达式2的值为0时,结束循环
(3) 求解表达式3
(4) 求解表达式2, 当表达式2的值为非0,执行语句,
当表达式2的值为0时,结束循环
(5) 求解表达式3
(6) 求解表达式2, 当表达式2的值为非0,执行语句,
当表达式2的值为0时,结束循环
…….
例:1+2+3+…+100
#include "stdio.h"
void main()
{ int I,sum=0;
for(I=1;I<=100;I++)
sum=sum+I;
printf(“%d”,sum);}
或:
#include "stdio.h"
void main()
{ int I,sum=0;
for(I=1;I<=100;)
{sum=sum+I; I++; }
printf(“%d”,sum);}
问题:10以内奇数的和
答案:
#include <stdio.h>
int main() {
int sum=0;
for (int i=1;i<=10;i+=2) {
sum+=i;
}
printf("%d",sum);
}
问题:10以内偶数的和
答案:
#include <stdio.h>
int main() {
int sum=0;
for (int i=0;i<=10;i+=2) {
sum+=i;
}
printf("%d",sum);
}