C语言,循环函数

sbit DS1302=P2^7
sbit L0=P1^0
sbit L1=P1^1
sbit L2=P1^2
sbit L3=P1^3
sbit L4=P1^4
sbit L5=P1^5
sbit L6=P1^6
sbit L7=P1^7
void delay(float t)
{
unsigned int j,i;
j=t*100
while(j--) 这里的while语句和for语句各起什么作用?
{ 是指循环 j*i 次吗?
for(i=8505;i;i--);
}
}
void main
{
DS1302=off
P0=0x00;
P2=0xff;
P3=0x80;
while(1)
{
L0=on;
delay(0.1);
L0=OFF;
L1=on;
delay(0.1);
L1=off;
L2=on;
delay(0.1);
L2=OFF;
L3=on;
delay(0.1);
L3=off;
L4=on;
delay(0.1);
L4=OFF;
L5=on;
delay(0.1);
L5=off;
L6=on;
delay(0.1);
L6=OFF;
L7=on;
delay(0.1);
L7=off;
}
}

C标准库中并没有循环函数的说法,只有三种循环语句:for语句和while语句,和do-while循环结构。
for循环的一般语法格式为:
for(表达式1;表达式2;表达式3)
{
循环体
}
其中,表示式可以省略,但是分号不可省略。

while语句的一般表达式为:
while(表达式)
{
循环体
}
do while 结构
do
{
循环体
}while( 表达式 )
实例:
1.for循环
#include<stdio.h>
int main(void)
{
int i,j,k;
j=k=2;
printf("ijk\n");
for(i=0;i<2;i++){
printf("%d%d%d\n",i,j,k);
}
return0;
}
2.while循环
#include<stdio.h>
int main(void)
{
int i=3;
j=k=2;
while(i>0){
printf("%d%d%d\n",i,j,k);
}
return0;
}
3.do while循环
#include<stdio.h>
int main(void)
{
int i=3;
j=k=2;
do{
printf("%d%d%d\n",i,j,k);
}while(i>0)
return0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-24
循环j*8505次.
假设j开始等于100, while外循环则循环100次, 每次执行一次内循环, 内循环每次执行8505次. 总共100*8505次.

你这个硬件处理器的频率可能运算8505次计算为1秒(或毫秒/微秒/纳秒), 然后delay函数实现循环n秒(或毫秒/微秒/纳秒). 应该不是秒, 1秒才运算8000多次的话那.....本回答被提问者采纳
第2个回答  2013-06-24
j=t*100
while(j--) 这里的while语句和for语句各起什么作用?
{ 是指循环 j*i 次吗?
for(i=8505;i;i--);
}
}
//============================================
空跑,也就是延时的作用,
for(i=8505;i;i--);一次全循环应该是1ms,void delay(float t)应该是延时t*100ms
第3个回答  2013-06-24
起到利用 指令执行周期来延时 的作用