05循环
前言:
关于程序流:一般有顺序,循环,分支。
类型:
入口条件循环:while,for
出口条件循环:do while
while循环:
形式:
while (expreesion)
statement
//在expression变为假之前,重复执行statement
//statement可以为一个简单语句或一个复合语句(加{})
例子:
将用户输入的整数进行加法运算:
#include<stdio.h>
int main(void)
{
long num;
long sum = 0l;
int status;
printf("Please enter an integer to be sumed.");
printf("q to quit");
status = scanf("%ld", &num);
while(status == 1)
{
sum = sum + num;
printf("Plese enter next integer (q to quit): ");
status = scanf("%ld", &num);
}
printf("Those integers sum to %ld.\n", sum);
return 0;
}
使用 while分别输 1~100 以内的所有的奇数和偶数的和:
#include <stdio.h>
int main(){
int sum=0;
int num=1;
int sum2=0;
int num2=2;
while(num<100){
sum=sum+num;
num=num+2;
}
printf("奇数和为:%d\n",sum);
while(num2<=100){
sum2=sum2+num2;
num2=num2+2;
}
printf("偶数和为:%d\n",sum2);
}
for循环
形式:
for(initialize; test; update)
statement
//在test为假之前重复执行循环
例子:
使用for分别输 1~100 以内的所有的奇数和偶数的和:
#include <stdio.h>
int main(){
int sum=0;
int sum2=0;
int num,num2;
for(num=1;num<100;num=num+2){
sum=sum+num;
}
printf("奇数和%d\n",sum);
for(num2=2;num2<=100;num2=num2+2){
sum2=sum2+num2;
}
printf("偶数和%d\n",sum2);
}
do while循环
形式:
do
statement
while(expression);
例子:
在用户输入13之前反复读取输入值
#include <stdio.h>
int main(void)
{
const int secret_code = 13;
int code_entered;
do
{
printf("to enter the triskaidekaphobia therapy club,\n");
printf("please enter the secretv code number: ")
scanf("%d",%code_entered);
}while(code_entered != secret_code);
printf("Congratulation! You are cured!\n");
return 0;
}
嵌套循环
举例
#include <stdio.h>
#define ROWS 6
#define CHARS 10
int main(void)
{
int row;
char ch;
for(row = 0; row < ROWS; row++)//外部循环
{
for(ch = 'A';ch < ('A' + CHARS):ch++)//内部循环
printf("%c",ch);
printf("\n");
}
return 0;
}
运行这个程序会产生下列输出:
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
#include <stdio.h>
int main(void)
{
const int ROWS = 6;
const int CHARS = 6;
int row;
char ch;
for(row = 0; row < ROWS; row++)//外部循环
{
for(ch = ('A' + row);ch < ('A' + CHARS):ch++)//内部循环
printf("%c",ch);
printf("\n");
}
return 0;
}
输出结果为:
ABCDEF
BCDEF
CDEF
DEF
EF
F
循环关键字
break
程序终止包含他的循环,并进行程序的下一阶段。
如果break语句位于嵌套循环里,它只影响包含他的最里层的循环。
for(int i = 1, i < 5; i++)
{
printf("%d", i);
break;
}
该程序只打印一个1。
int p, q;
scanf("%d", &p);
while( p > 0)
{
printf("%d \n",p * q);
if(q > 100)
break;//跳出里层循环
scanf("%d", &q);
}
if(q > 100)
break;//跳出外层循环
scanf("%d", &p);
continue
进行下一次循环
for(i = 1; i <= 5; i++)
{
printf("前半句");
continue;
printf("后半句\n");
}
该程序只会打印五个“前半句”
例子:打印20以内的奇数:
for(i = 1; i <= 20; i++)
{
if(i % 2 == 0)
{
continue
}
printf("%d", i);
}