久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2937|回復: 20
收起左側

請教一個C語言IF語句問題

  [復制鏈接]
ID:113626 發表于 2020-3-4 23:58 | 顯示全部樓層 |閱讀模式
如圖所示,我本想第二個IF語句動作的要求是M1等于1,還有K1等于0時才可以動作接通Y0,  但是實際程序中無論M1是否接通,只要K1接通的話Y0就可以接通,,請問為什么是這樣的,,我這樣寫不是代表只有M1==1和K1==0時才可以接通Y0得嘛
捕獲.PNG
回復

使用道具 舉報

ID:687694 發表于 2020-3-5 00:07 | 顯示全部樓層
if(m1==0x01&&k1==0x00)
{
...;
}
回復

使用道具 舉報

ID:419968 發表于 2020-3-5 01:19 | 顯示全部樓層
改成 if((m1==0X01)&& (k1=0x00))

評分

參與人數 1黑幣 +5 收起 理由
IdeaMing + 5 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:113626 發表于 2020-3-5 08:05 | 顯示全部樓層
lovexulu 發表于 2020-3-5 00:07
if(m1==0x01&&k1==0x00)
{
...;

這個可以,但是請問為什么會這樣?是它IF語句規定了后面的條件到達了就判斷為真這樣嗎
回復

使用道具 舉報

ID:113626 發表于 2020-3-5 08:07 | 顯示全部樓層
adject 發表于 2020-3-5 01:19
改成 if((m1==0X01)&& (k1=0x00))

可以用兩個括號的嗎?不是只辨別括號內的條件嘛,如果兩個括號不是就錯了嗎?請問你知道為什么我這樣寫不可以執行的嗎
回復

使用道具 舉報

ID:46918 發表于 2020-3-5 08:10 | 顯示全部樓層
if((m1==0X01)&& (k1==0x00))
{
   yanshi(10);
   if((m1==0X01)&& (k1==0x00))
  {
}
}
回復

使用道具 舉報

ID:46918 發表于 2020-3-5 08:17 | 顯示全部樓層
if((m1==0x01)&&(k1==0x00))
{
    yanshi(10);
    if((m1==0x01)&&(k1==0x00))
    {
    Y0 =0X00;
    }
}
這樣應該就可以了
回復

使用道具 舉報

ID:592807 發表于 2020-3-5 08:19 | 顯示全部樓層
逗號的話時后一句有效,
回復

使用道具 舉報

ID:697917 發表于 2020-3-5 08:44 | 顯示全部樓層
你的語法不對,條件&&條件
回復

使用道具 舉報

ID:377210 發表于 2020-3-5 09:49 | 顯示全部樓層
語法錯了
回復

使用道具 舉報

ID:633559 發表于 2020-3-5 12:51 | 顯示全部樓層
首先,你為什么用逗號?
其次,你需要了解你所設想的,在C語言中是如何書寫表達的,就你這問而言,你需要了解這個&&
&&:并且的意思
if(條件1&&條件2):當條件1為真并且條件2為真執行if語句里面的程序
還有個符號是||
||:或的意思
if(條件1||條件2):當條件1為真或條件2為真執行if語句里面的程序(兩個條件有一個滿足就能進去)
回復

使用道具 舉報

ID:687694 發表于 2020-3-5 12:58 | 顯示全部樓層
孤獨行者 發表于 2020-3-5 08:05
這個可以,但是請問為什么會這樣?是它IF語句規定了后面的條件到達了就判斷為真這樣嗎

你好,在C語言中if屬于條件選擇語句,結構為if(表達式){語句},其中表達式的含義即運算,在if語言表達式結果會強制轉換為bit型,即1或0,1代表真,0代表假。真則執行后面{}中的語句,假則跳過。然而逗號在C語言中是一種優先級最低的運算符,它作為順序求值,例如 a=(3,4,7) 結果a=7;再例 b=1;c=3;a=(5+(c+1,b);結果a=6;,運算總取最后一個表達式的值。現在再來看你寫的那一句if(表達式1,表達式2)其結果就是if(表達式2),與表達式1無關,他們進行了逗號運算。接下來講括號運算,數學中遵循括號中的表達式優先運算,在C語言中也有效,if((表達式1)&&(表達式2))這樣結果也沒有錯,但是對于單片機來講,它需要多一個括號運算。徒增內耗,并沒有什么意義。
以上如有不正之處還望大佬們指出。
回復

使用道具 舉報

ID:550840 發表于 2020-3-5 13:46 | 顯示全部樓層

if(m1==0x01&&k1==0x00)
回復

使用道具 舉報

ID:113626 發表于 2020-3-6 10:51 | 顯示全部樓層
黃youhui 發表于 2020-3-5 08:19
逗號的話時后一句有效,

請問這是IF語句規定的嗎?還是C語言規定所有語句都一樣,請教
回復

使用道具 舉報

ID:113626 發表于 2020-3-6 10:52 | 顯示全部樓層
想進步要學習 發表于 2020-3-5 12:51
首先,你為什么用逗號?
其次,你需要了解你所設想的,在C語言中是如何書寫表達的,就你這問而言,你需要 ...

多謝解答
回復

使用道具 舉報

ID:113626 發表于 2020-3-6 10:58 | 顯示全部樓層
lovexulu 發表于 2020-3-5 12:58
你好,在C語言中if屬于條件選擇語句,結構為if(表達式){語句},其中表達式的含義即運算,在if語言表達式 ...

非常感謝你的詳細回答,在你結尾的時候提到雙括號并不是很完美,,那么請問是不是要寫成IF(M0==0X1&&K1==0X0)這樣才是比較好的?還有在請問一下有沒有什么好的書可以說明這些C語言的基礎,想學習學習,非常感謝
回復

使用道具 舉報

ID:113626 發表于 2020-3-6 10:59 | 顯示全部樓層
lyong0704 發表于 2020-3-5 13:46
if(m1==0x01&&k1==0x00)

試了下,這個也可以,,多謝回答
回復

使用道具 舉報

ID:703392 發表于 2020-3-6 14:57 | 顯示全部樓層

改成 if((m1==0X01)&& (k1=0x00))
回復

使用道具 舉報

ID:560467 發表于 2020-3-6 16:04 | 顯示全部樓層
你應該寫if((m1==0)&&(k1==0)) ,你這個寫的語法不對。建議你好好看看c語言的書。
回復

使用道具 舉報

ID:437615 發表于 2020-3-7 09:02 來自手機 | 顯示全部樓層
這個是基礎語法知識,&&表示并且并列的意思
回復

使用道具 舉報

ID:420836 發表于 2020-3-7 09:32 | 顯示全部樓層
語法錯了, 應該寫成
if ((m1==0x01) && (k1==0x00))
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩电影一区 | 亚洲综合在线网 | 亚洲人va欧美va人人爽 | 97精品国产手机 | 国产视频导航 | 精品三级 | 男人av在线播放 | 国产精品综合视频 | 国产丝袜一区二区三区免费视频 | 久久久久国产精品一区二区 | 欧美激情va永久在线播放 | 免费在线观看91 | h网站在线观看 | 国产精品久久久亚洲 | 中文字幕在线看 | 国产精品爱久久久久久久 | 激情综合五月 | 国产精品一区二区福利视频 | 久久精品国产亚洲 | 91精品国产综合久久久动漫日韩 | av免费网站在线观看 | 国产精品日本一区二区在线播放 | 国产日韩av一区二区 | 成人av激情 | 久草在线中文888 | 久久久xxx | 精品九九九 | 久草在线视频中文 | 日韩蜜桃视频 | 国产在线网址 | 武道仙尊动漫在线观看 | 不卡av在线 | 日日干夜夜操 | 欧洲一区在线观看 | 人人擦人人干 | 色婷婷亚洲| 欧美伊人| 福利成人 | 最新超碰 | 精品欧美一区二区三区 | 国产一区二区三区在线看 |