循环是C语言的三种基本结构之一,在很多问题中都需要用到循环控制,如1~100之间不能够被7整除的数的和,如果不使用循环的话,我们只能先把1~100不能被7整除的数找出来,然后再求出它们之和,但如果使用循环的话,可以让程序语句从1开始循环,只要是不能够被7整除的数都将被输出并计算累加和,执行完最后一次循环操作后,就能够得到最终结果,这个时候就使用循环语句就很有必要。
#include <stdio.h>
int main(int argc,constchar * argv[]) {
int i=1,sum=0;
while (i<=100) {
sum=sum+i;
i++;
}
printf("1+2+3+...+100=%d\n",sum);
}
b.使用do...while循环
#include <stdio.h>
int main(int argc,constchar * argv[]) {
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf("1+2+3+...+100=%d\n",sum);
}
c.使用for循环
#include <stdio.h>
int main(int argc,constchar * argv[]) {
int sum=0;
for(int i=1;i<=100;i++)
sum=sum+i;
printf("1+2+3+...+100=%d\n",sum);
}
三种语句最后的输出结果都是5050,可以看到for循环代码量最少,而且书写格式更规范,可以避免遗漏变量初始化等问题。当然循环中可以嵌套条件语句,也可以嵌套循环语句。
3.循环的嵌套使用
循环中嵌套循环语句可以解决判断较多,多次使用循环的问题,但是要注意在使用嵌套语句时使用break和continue语句:
(1).break语句为从循环体内跳出循环体,提前结束循环;
(2).continue语句为跳过循环体中本次尚未执行的语句,接着进行下一次循环;
我们看两个实例:
实例1.求1~100之内不能被7整除的数(循环中嵌套条件语句)
#include <stdio.h>
int main(int argc, const char * argv[]) {
int num;
int sum =0;
//使用for循环对不能被7整除的数进行累加
for (num=1;num<=100 ; num++)
{
if (num%7==0)
//循环过程中如果碰到能被7整除的数就跳出本次循环,使用continue
continue;
sum=sum+num;
}
printf("1-100之间不能够被7整除的数的和为%d\n",sum);
}
#include <stdio.h>
int main()
{
int num[10]={};
int i;
int len=sizeof(num)/sizeof(int);
for (i=0; i<10; i++)
{
printf("请输入数组的第%d个数据\n",i+1);
// 输入数组元素
scanf("%d",&num[i]);
}
//打印数组元素
for(i=0;i<len;i++)
{
printf("%d ",num[i]);
}
printf("\n");
int c;
//外循环每次都比较出len-d中的最大数
for(int d=0;d<len-1;d++)
{
/*定义p=1为了num[1]与num[0]比较,第一轮比较len-1次,
第二轮比较len-2次,第三轮比较len-3次,因此此处for的循环限制条件可写为:len-d
*/
for(int p=1;p<len-d;p++)
//如果后一个数小于前一个数,交换位置,把大的数往后排
if(num[p]<num[p-1])
{
c=num[p-1];
num[p-1]=num[p];
num[p]=c;
}
}
//打印排序后的数组位置
for(i=0;i<10;i++)
{
printf("%d ",num[i]);
{
return 0;
}