求解释!!功能怎么实现??
void loop(){
while(1)
{
digital_1();//显示数字1
while(analogRead(0)>1000);//如果读到模拟0口的值1000则说明有按键按下
delay(100);//延时200ms
digital_2();//显示数字2
while(analogRead(0)>1000);//如果读到模拟0口的值1000则说明有按键按下
delay(100);//延时200ms
}
} while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。其执行过程可用下图表示。
【例6.2】用while语句计算从1加到100的值。用传统流程图和N-S结构流程图表示算法,见图:
main()
{
int i,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
}
【例6.3】统计从键盘输入一行字符的个数。
#include <stdio.h>
main(){
int n=0;
printf("input a string:\n");
while(getchar()!='\n') n++;
printf("%d",n);
}
本例程序中的循环条件为getchar()!='\n',其意义是, 只要从键盘输入的字符不是回车就继续循环。循环体n++完成对输入字符个数计数。从而程序实现了对输入一行字符的字符个数计数。
使用while语句应注意以下几点:
while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
【例6.4】
main(){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
while (n--)
printf("%d",a++*2);
}
本例程序将执行n次循环,每执行一次,n值减1。循环体输出表达式a++*2的值。该表达式等效于(a*2;a++)。 谢谢,有一点不明白
digital_1();//显示数字1
while(analogRead(0)>1000);//如果读到模拟0口的值1000则说明有按键按下
delay(100);//延时200ms
while();后面没有表达式了,接下来怎么执行 linxuan_1990 发表于 2013-9-28 18:32 static/image/common/back.gif
谢谢,有一点不明白
digital_1();//显示数字1
while(analogRead(0)>1000);//如果读到模拟0口的值 ...
一直在while(1){}内循环 本帖最后由 laofuz1024 于 2013-9-29 05:40 编辑
linxuan_1990 发表于 2013-9-28 18:32 static/image/common/back.gif
谢谢,有一点不明白
digital_1();//显示数字1
while(analogRead(0)>1000);//如果读到模拟0口的值 ...
是指while(analogRead(0)>1000) 的后面是 ; 号,没有表达式吗?
后面是分号,没有表达式,就会回头去判断 analogRead(0)>1000
如果这句结果是真,那就会什么也不干,因为没有表达式,什么也不干,马上又跳回判断 analogRead(0)>1000。也就是说,如果这条式子成立,那就会不停地判断这式子,发现式子成立,什么也不干又回判断
就相当于 我问你是姓陈吗?你回答是,那我什么也不干又继续问你是姓陈吗,如此循环..........
如果你回答不是了,那我就走开去干别的事情
如果这条式子不成立,就会去执行 下面的 delay(100); 这些语句... laofuz1024 发表于 2013-9-29 05:39 static/image/common/back.gif
是指while(analogRead(0)>1000) 的后面是 ; 号,没有表达式吗?
后面是分号,没有表达式,就会回头 ...
谢谢大哥,明白了 a5123058 发表于 2013-9-29 00:29 static/image/common/back.gif
一直在while(1){}内循环
谢谢,你回答的,不是我要问的内容。:D
页:
[1]