一、while循环
经常用于不知道次数的循环
与for属于“当型”循环,先判断,后执行
/* 喝水
money,price必须定义为小数
huanshui为整数*/
#include<stdio.h>
#define money 111.7
#define price 3.5
#define huanshui 6
int main(void)
{
int sum,pz,dgpz,m;
pz=(int)money/price;
sum=(int)money/price;
m=huanshui;
while(pz>(m-1))
//注释了没用 do
{
dgpz=pz%m;
pz=pz/m;
sum+=pz;
pz+=dgpz;
}
//注释了没用 while(pz>(m-1));
printf("%f元钱,%f元一瓶水,%d个空瓶可以换一瓶水:\n总共可以喝%d瓶水,剩余%d个瓶子\n",money,price,huanshui,sum,pz);
}
二、do while循环
先做一次,在接着循环,属于"直到型"循环,
经常用于登陆模块
/* 喝水
money,price必须定义为小数
huanshui为整数*/
#include<stdio.h>
#define money 111.7
#define price 3.5
#define huanshui 6
int main(void)
{
int sum,pz,dgpz,m;
pz=(int)money/price;
sum=(int)money/price;
m=huanshui;
do
{
dgpz=pz%m;
pz=pz/m;
sum+=pz;
pz+=dgpz;
}
while(pz>(m-1));
printf("%f元钱,%f元一瓶水,%d个空瓶可以换一瓶水:\n总共可以喝%d瓶水,剩余%d个瓶子\n",money,price,huanshui,sum,pz);
}
三、for循环
经常用于数组等有穷循环次数的类型。属于while的一个变种,先判断后执行
#include<stdio.h>
main()
{
int i,j;
//1~100的奇数
for(i=0;i<100;(i++))
printf("%d\t",++i);
//1~100的平方
printf("\n");
for(i=1;i<=100;(i++))
printf("%d*%d=%d\t",i,i,i*i);
}
位置1for(初值表达式;结束条件表达式;迭代表达式){ 位置2}
初值表达式可以放到位置1,
迭代表达式可以放入位置2
当然结束条件表达式也可放入2,但是要用if()break;来结束循环
for(;;)里面可以全为空。结束条件表达式不写 表示为真。