欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 為什么這個(gè)單片機(jī)程序不能使用if判斷 [打印本頁(yè)]

作者: hellomcp    時(shí)間: 2019-9-19 20:27
標(biāo)題: 為什么這個(gè)單片機(jī)程序不能使用if判斷
#include <reg52.h>

sbit led = P2^0;
sbit led2 = P2^1;
typedef unsigned int u16;        
typedef unsigned char u8;

void main(){

        u16 a = 1;
        if(a = 2){
                while(1){
                        led = 0 ;
                }

        }else{
                while(1){
                        led2 = 0 ;
                }
        }



}

作者: hellomcp    時(shí)間: 2019-9-19 20:28
單片機(jī)無(wú)論如何都會(huì)運(yùn)行if里面的第一個(gè)循環(huán),而不會(huì)判斷條件是真是假,不知道怎么回事
作者: pansystem088    時(shí)間: 2019-9-19 21:21
a = 2是賦值表達(dá)式,其值為2,是非零值,i所以if語(yǔ)句"()"內(nèi)的表達(dá)式執(zhí)行結(jié)果永遠(yuǎn)為真。
作者: pansystem088    時(shí)間: 2019-9-19 21:24
a=2是賦值表達(dá)式,其值為2,是非零值,所以if中"()"內(nèi)的表達(dá)式運(yùn)行結(jié)果為真。所以執(zhí)行第一個(gè)while語(yǔ)句。
作者: xiaowg    時(shí)間: 2019-9-19 22:11
改成if(a==2)
作者: csmyldl    時(shí)間: 2019-9-20 00:21
應(yīng)該把if(a = 2)改為if(a == 2) 但根據(jù)程序a不可能會(huì)等于2,那么就只好執(zhí)行else{
                while(1){
                        led2 = 0 ;
                }
這里是是個(gè)無(wú)限循環(huán),一直使led2=0;不知道這樣的程序編了后要實(shí)現(xiàn)什么樣的功能?
作者: 文鳳軒    時(shí)間: 2019-9-20 01:00
判斷應(yīng)該用a==2,兩個(gè)等號(hào),a=2一個(gè)等號(hào)是賦值
作者: liuyimao485812    時(shí)間: 2019-9-20 01:19
if(a==2) 就對(duì)了。
作者: wulin    時(shí)間: 2019-9-20 07:15
hellomcp 發(fā)表于 2019-9-19 20:28
單片機(jī)無(wú)論如何都會(huì)運(yùn)行if里面的第一個(gè)循環(huán),而不會(huì)判斷條件是真是假,不知道怎么回事

  if(a = 2)???難道編譯時(shí)沒(méi)有警告?
作者: sunguox    時(shí)間: 2019-9-20 08:39
判斷應(yīng)該用a==2,兩個(gè)等號(hào),a=2一個(gè)等號(hào)是賦值
作者: kkkkkkkkkkkk    時(shí)間: 2019-9-20 09:00
語(yǔ)法錯(cuò)啦,改一下應(yīng)該就好了
作者: 那個(gè)誰(shuí)和誰(shuí)    時(shí)間: 2019-9-20 09:36
改成a==2,但是這個(gè)程序沒(méi)啥用啊,死循環(huán)出不來(lái)。
作者: chen0769    時(shí)間: 2019-9-20 10:02
a = 2是賦值語(yǔ)句,則a值為2,是非零值,所以if語(yǔ)句表達(dá)式為真而運(yùn)行第一個(gè)循環(huán),判斷條件應(yīng)該改為:if(a==2)
作者: 51_hei    時(shí)間: 2019-9-20 13:20
a = 2 是賦值語(yǔ)句,在一些編譯器中默認(rèn)為真,如果希望程序運(yùn)行,更改為a == 2 判斷語(yǔ)句即可。

和樓上們一樣,這個(gè)程序是干什么的,個(gè)人感覺(jué)像是學(xué)校試題,,

如果希望實(shí)現(xiàn)什么功能,要改的地方就稍稍多了
作者: wcs1668    時(shí)間: 2019-9-20 14:41
書寫格式錯(cuò)誤
作者: cuihaodianzi    時(shí)間: 2019-9-20 15:32
u16 a;
......

void main()
{
  while(1)
         {
           if(a == 2)
                {
                    led = 0 ;
                }   
          else
               {
                   led2 = 0 ;
               }
        }
}



作者: qq603599910    時(shí)間: 2019-9-20 18:47
wulin 發(fā)表于 2019-9-20 07:15
if(a = 2)???難道編譯時(shí)沒(méi)有警告?

會(huì)出警告,但不是報(bào)錯(cuò).
作者: hellomcp    時(shí)間: 2019-9-22 18:37
謝謝大家了,賦值用等于,對(duì)比用直等于
作者: cql1980    時(shí)間: 2019-10-9 10:36
把if(a = 2)改為if(a == 2) 不知道還有其他程序嗎,a沒(méi)有自加 a++; a永遠(yuǎn)不會(huì)=2吧
作者: zlg@1107    時(shí)間: 2019-10-9 15:38
if是條件判斷語(yǔ)句,if(a=2),中的a=2是賦值表達(dá)式,不是判斷語(yǔ)句的“==”
作者: 新手大包子    時(shí)間: 2019-10-9 17:55
a=2不是比較語(yǔ)句是賦值  在c語(yǔ)言中 = 為賦值。if(a==2)
作者: jiahao6681    時(shí)間: 2019-10-10 09:41
賦值表達(dá)式a=2結(jié)果永遠(yuǎn)為真,改為a==2就好了
作者: KAIZI    時(shí)間: 2019-10-10 10:22
if判斷里 a=2是賦值語(yǔ)句,需要改成 if(a==2)
作者: bai_yun_123    時(shí)間: 2019-10-10 15:02
wulin 發(fā)表于 2019-9-20 07:15
if(a = 2)???難道編譯時(shí)沒(méi)有警告?

有的編譯器不給警告,幫你當(dāng)做一條語(yǔ)句執(zhí)行了,我最近就遇到了,找了很長(zhǎng)時(shí)間才找到這個(gè)錯(cuò)誤(C++,比這個(gè)程序復(fù)雜很多)
作者: 動(dòng)情小豬    時(shí)間: 2019-10-10 17:57
我剛開(kāi)始也犯過(guò)這種錯(cuò)
作者: 晨晨晨晨晨晨    時(shí)間: 2019-10-10 22:14
if(a= 2) 改為if(a == 2)   c語(yǔ)言中的=是賦值 ,==是判斷
作者: 闊愛(ài)的釗釗    時(shí)間: 2019-10-11 10:31
你是打算賦值2給a變量嗎? a=2?a==2吧
作者: 邪乎風(fēng)云    時(shí)間: 2019-10-11 15:53
if(a==2),你缺少了一個(gè)等號(hào)




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1