各位老师,小生求教一个关于C语言的问题。多谢!

2019-07-15 22:02发布

各位老师,小生求教一个关于C语言的问题key=1;
while(!key);
{
if(num<9)
num++;
}

这样写正确吗?

为什么while(!key);
都是一个语句了。怎么后面还加{}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
青菜家族凯
1楼-- · 2019-07-16 03:49
while语句后面加了;号,表示语句的结束,假如语句为真即如while(1);程序永远停在这里。下面的语句都不会执行下去。
小分子
2楼-- · 2019-07-16 04:33
青菜家族凯 发表于 2013-10-21 10:04
while语句后面加了;号,表示语句的结束,假如语句为真即如while(1);程序永远停在这里。下面的语句都不会执 ...

while (1)      
  {

  if(!KEY_ADD)
    {
         DelayMs(10);
     if(!KEY_ADD)     
           {
        while(!KEY_ADD);
               {               //这组大括号不加可以不?
                   if(num<9)   
                  num++;

                         }
           }

青菜家族凯
3楼-- · 2019-07-16 08:50
 精彩回答 2  元偷偷看……
小分子
4楼-- · 2019-07-16 09:13
青菜家族凯 发表于 2013-10-21 14:49
可以不加,你是想实现什么功能?能说说要求?

按键实现
按一下加一个数,到9之后就减到0;我就发现那个{}不应该加。
电峰盟友
5楼-- · 2019-07-16 14:52
不知道你想实现什么功能?
青菜家族凯
6楼-- · 2019-07-16 19:24
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71 };
sbit key1=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uchar z);
void main()
{        P1=0xff;
        wela=1;
        P0=0xfe;
        wela=0;
        while(1)
        {
                if(key1==0)
                        {       
                                delay(5);
                                if(key1==0)
                                        {       
                                                num++;
                                                if(num==10)
                                                        num=0;
                                        }
                                while(!key1);
                        }
                else
                        dula=1;
                        P0=table[num];
                        dula=0;
        }
}
void delay(uchar z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
这是程序,你可以看看。

一周热门 更多>