打印

大家看看这个程序~~为什么呢?

[复制链接]
1254|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwfj2418|  楼主 | 2008-9-17 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit a1=P3^2;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
unsigned int a;

void main()
{             
                    
        P3=0xff;
                if(a1==0)
                    key1=1;
                    key2=1;
        while(1)
        {
                

                if(key1==0)
                    a=51000;
                     d1=0;
                    while(a--);
                    d1=1;
                                   a=51000;
                                   while(a--);
                    
                
                if(key2==0)
                    a=51000;
                    d2=0;    
                    while(a--);
                    d2=1;
                    a=51000;
                    while(a--);
                                
                
                if(key1==0&key4==0)
                    d1=0;
                    d4=0;
                    key2=1;
                    

                if(key2==0&key4==0)
                    d2=0;
                    d4=0;
                    key1=1;
                    

                if(key4==0)
                    key3=0;
                    d3=0;
                    key3=1;
                    d3=1;
                
                
        }
}

这个是我看到的一个程序  
我觉得if语句是不是太多了,而且不能加else 如果加了立刻会出现错误,不加就什么错误也没有,咱是新手搞不明白为什么,请教高手看看吧~
这个程序是想表达一个选择的结果,如果不用if语句能用别的吗?

相关帖子

沙发
gjg191| | 2008-9-17 16:11 | 只看该作者

o

这个程序少了好多{}这个阿,加else怎么会出错呢?

使用特权

评论回复
板凳
hotyong| | 2008-9-17 19:15 | 只看该作者

请问你想把else 加在哪,

肯定是回错地方了,才会报错

使用特权

评论回复
地板
yuzq2001| | 2008-9-18 07:53 | 只看该作者

就是,{}都没有,还有开始的定义虽然没错,但感觉怪怪的

使用特权

评论回复
5
zwfj2418|  楼主 | 2008-9-18 08:01 | 只看该作者

恩 是有问题

    这个是我从网上拷下来的  觉得很奇怪。。。。为什么不加else就正确呢?括号也没,也正确。。。真的很奇怪,这样的程序在调试的时候居然没出错。。纳闷ing

使用特权

评论回复
6
zwfj2418|  楼主 | 2008-9-18 08:09 | 只看该作者

呵呵~~给点意见

呵呵 小弟在这请教了  我把网上的这个程序改成这样了  大家看看还有什么问题吗?哥哥姐姐指导下~~~

#include<reg51.h>
sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit a1=P3^2;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
unsigned int a;
void init();

void main()
{             
                    
        P3=0xff;            
        while(1)
        {
                if(a1==0)
                    {
                        key1=1;
                        key2=1;
                    }
                else
                        key1=0;
                        key2=0;

                if(key1==0)
                    {
                        a=51000;
                         d1=0;
                        while(a--);
                        d1=1;
                                       a=51000;
                                       while(a--);
                             if(key4==0)
                        d1=0;
                        key2=1;
                    }
                else 
                        key2=0;d1=1;
                    
                
                if(key2==0)
                    {
                        a=51000;
                        d2=0;    
                        while(a--);
                        d2=1;
                        a=51000;
                        while(a--);
                        if(key4==0)
                        d2=0;
                        key1=1;
                    }
                else 
                        key1=0;d2=1;

                if(key4==0)
                    {
                        key3=0;
                        d3=0;
                        key3=1;
                        d3=1;
                    }
                else
                        key3=1;
                
                
        }
}


我想原来的程序就是想表达这个意思的吧~~
不知道我是否理解错了~~

使用特权

评论回复
7
zwfj2418|  楼主 | 2008-9-18 08:37 | 只看该作者

纠正上面的一个错误~~

sbit a1=P3^7
不是上面的P3^2

使用特权

评论回复
8
gjg191| | 2008-9-18 08:54 | 只看该作者

o

你的else也要加{} 还有init()子程序没有内容也要有{}

使用特权

评论回复
9
zwfj2418|  楼主 | 2008-9-19 07:47 | 只看该作者

else也要加吗?

使用特权

评论回复
10
gjg191| | 2008-9-19 08:18 | 只看该作者

o

else
                        key1=0;
                        key2=0;
这里如果不加呢,会得到你要的结果吗?

使用特权

评论回复
11
zwfj2418|  楼主 | 2008-9-19 08:29 | 只看该作者

呵呵~~谢谢啊

   这个是我从网上看到的一个程序,说是错误很多,我想弄来自己看看的,本人第一次学习,很多都不会。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

97

帖子

0

粉丝