一、while的三种使用形式:
(一)while(1)
(二)while(i–)
(三)while(ikey)
(一) while(1)语句的用法:
while(1)在程序中可以放在两个位置:1、程序开始处;2、程序结尾处。
第1种的作用是:一直循环while大括号内的语句,比如:
while(1)
{
a=b+c;
display();
}
程序就一直在循环执行a=b+c;display(),不会跳出while语句,执行下面的语句。除非while(1)括号里面不再为真时,才会跳出循环。(ps:1为真,0为假)
第2种的作用是:程序执行到此处为止,不会再执行while(1)下面的语句。比如:
void main()
{
a=b+c;
display();
while(1);
i++;
}
程序执行a=b+c;display();while(1)就会一直停留在while(1)这个语句这里,不会往下执行i++了,除非while(1)括号里面不再为真时,才会跳出循环。(ps:1为真,0为假)
(二) while(i–)语句的用法:
常常用在delay()延迟函数中。例如:
void delay(unsigned int i)
{
while(i–);
}
当主函数执行到延迟函数delay(参数)时,程序就会调用void delay(unsigned int i),从而执行延迟函数里面的语句,在这里则执行while(i–)语句,减到i=0时才会跳出while语句,从而跳出延迟函数,再去执行主函数中延迟函数的下一条语句。
(三) while(!key)语句的用法:
常用在独立按键试验中,用来检测按键是否松开。比如:
void keypro()
{
if(key==0)
{
led=~led;
while(!key);
}
}
当按键key按下时,key=0,执行led=~led;再执行while(!key)语句,因为key=0,所以!key=1,程序执行停留在while(!key)处,直到松开按键时,key=1,!key=0,才跳出while(!key)语句,去执行下一条程序。
总结:无论是三种形式中的哪一种,当while(表达式)语句中的表达式不为0时,程序就一直停留在while语句这里。当表达式为0时就不执行while语句。
其中(i–)里面是两个减号,只是电脑显示不出来。
这只是我刚遇到的三种用法而已,不代表while语句的所有用法!
刚学习单片机,若文章有错误或遗漏之处,欢迎评论指正,不胜感激!
一、while的三种使用形式:
(一)while(1)
(二)while(i–)
(三)while(ikey)
(一) while(1)语句的用法:
while(1)在程序中可以放在两个位置:1、程序开始处;2、程序结尾处。
第1种的作用是:一直循环while大括号内的语句,比如:
while(1)
{
a=b+c;
display();
}
程序就一直在循环执行a=b+c;display(),不会跳出while语句,执行下面的语句。除非while(1)括号里面不再为真时,才会跳出循环。(ps:1为真,0为假)
第2种的作用是:程序执行到此处为止,不会再执行while(1)下面的语句。比如:
void main()
{
a=b+c;
display();
while(1);
i++;
}
程序执行a=b+c;display();while(1)就会一直停留在while(1)这个语句这里,不会往下执行i++了,除非while(1)括号里面不再为真时,才会跳出循环。(ps:1为真,0为假)
(二) while(i–)语句的用法:
常常用在delay()延迟函数中。例如:
void delay(unsigned int i)
{
while(i–);
}
当主函数执行到延迟函数delay(参数)时,程序就会调用void delay(unsigned int i),从而执行延迟函数里面的语句,在这里则执行while(i–)语句,减到i=0时才会跳出while语句,从而跳出延迟函数,再去执行主函数中延迟函数的下一条语句。
(三) while(!key)语句的用法:
常用在独立按键试验中,用来检测按键是否松开。比如:
void keypro()
{
if(key==0)
{
led=~led;
while(!key);
}
}
当按键key按下时,key=0,执行led=~led;再执行while(!key)语句,因为key=0,所以!key=1,程序执行停留在while(!key)处,直到松开按键时,key=1,!key=0,才跳出while(!key)语句,去执行下一条程序。
总结:无论是三种形式中的哪一种,当while(表达式)语句中的表达式不为0时,程序就一直停留在while语句这里。当表达式为0时就不执行while语句。
其中(i–)里面是两个减号,只是电脑显示不出来。
这只是我刚遇到的三种用法而已,不代表while语句的所有用法!
刚学习单片机,若文章有错误或遗漏之处,欢迎评论指正,不胜感激!
举报