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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6140|回復: 11
收起左側

C語言if語句不滿足條件執行 其它怎么寫?附代碼

[復制鏈接]
ID:101869 發表于 2021-4-15 15:11 | 顯示全部樓層 |閱讀模式
10黑幣
   while(1)
                      {  {if (sw1_in==0)//狀態1
                          A=2;
                          TR0=1;}
                        {if (sw1_in==0&&sw2_in==0)//狀態2
                          A=4;
                          TR0=1;}
              {if (sw1_in==1&&sw2_in==1)//狀態3
                          A=10;
                          TR0=1;}
                         break; }         
現在問題是為什么沒有滿足狀態2  卻執行了狀態1 狀態1也沒有滿足啊   我只是sw2_in輸入了低電平  我想這幾個條件都沒滿足  去執行另一個任務下面怎么寫啊    小白一枚特來求助

最佳答案

查看完整內容

你的大括號有問題,if語句的括號不是你這樣加的.......還有,這種常量判斷用switch更好,判斷好壞的可以在switch里面寫: while(1) { switch(sw1_in) { case 0: if(sw2_in==0) { xxxxxxxxx; } else { xxxxxxxxx; } break; case 1: if(sw2_in==0) { xxxxxxxxx; } else { xxxxxxxxx; } ...
回復

使用道具 舉報

ID:569113 發表于 2021-4-15 15:11 | 顯示全部樓層
本帖最后由 DSFGSF 于 2021-4-16 10:35 編輯

你的大括號有問題,if語句的括號不是你這樣加的.......還有,這種常量判斷用switch更好,判斷好壞的可以在switch里面寫:
while(1)
{
  switch(sw1_in)
  {
      case 0:
      if(sw2_in==0)
     {
          xxxxxxxxx;
      }
      else
     {
          xxxxxxxxx;
     }
    break;
    case 1:
    if(sw2_in==0)
   {
        xxxxxxxxx;
    }
    else
   {
        xxxxxxxxx;
   }
   break;
  }
}
回復

使用道具 舉報

ID:584814 發表于 2021-4-15 17:09 | 顯示全部樓層
進Main之后首先要初始化系統,比如在循環外先將 sw1_in=1 試試。
回復

使用道具 舉報

ID:894154 發表于 2021-4-15 17:53 | 顯示全部樓層
我看你的程序花括號有問題吧,還有你的while(1)循環里面為什么會放break???核對一下:
while(1)
    {  
      if(sw1_in==0)//狀態1
       {
          A=2;
          TR0=1;
       }
      if(sw1_in==0&&sw2_in==0)//狀態2
       {
          A=4;
          TR0=1;
       }
      if(sw1_in==1&&sw2_in==1)//狀態3
       {
          A=10;
          TR0=1;
       }
       break; //這里如果放break;程序判斷三次之后就跳出循環了
    }
回復

使用道具 舉報

ID:101869 發表于 2021-4-15 21:29 | 顯示全部樓層
ANT1987 發表于 2021-4-15 17:53
我看你的程序花括號有問題吧,還有你的while(1)循環里面為什么會放break???核對一下:
while(1)
    ...

這是一個檢測  檢測完要退出去的  如果不加退出  就一直死在這里了   前面還有條件呢  這個程序就是按下按鍵檢測幾個IO的狀態  
回復

使用道具 舉報

ID:824490 發表于 2021-4-15 22:20 | 顯示全部樓層
如果能確定要判斷的值(多個),就用switch。。。case
如果確定要判斷的值不等于某值,就用 if (regx != value)
回復

使用道具 舉報

ID:743654 發表于 2021-4-16 08:55 | 顯示全部樓層
用 if else if else
if(條件1)
        語句1;
else if(條件2)
        語句2;
else (條件3)
        語句3;
先判斷條件1,條件1不滿足,再去判斷條件2,條件2不滿足,再判斷條件3,以此類推
回復

使用道具 舉報

ID:743654 發表于 2021-4-16 08:59 | 顯示全部樓層
或者用switch case,比較直觀

switch(表達式){
    case 整型數值1: 語句 1,break;
    case 整型數值2: 語句 2,break;
    ......
    case 整型數值n: 語句 n,break;
    default: 語句 n+1,break;
}
回復

使用道具 舉報

ID:332214 發表于 2021-4-16 09:16 | 顯示全部樓層
首先 你這邊確定狀態1,2,3是不是互斥,如果是互斥的那就用上if elseif ,而且判斷條件里就要有sw1_in&&sw2_in總共有四種可能,什么狀態下執行什么。還是說狀態之間是獨立的,你現在的語法是狀態2條件滿足,狀態1 會先執行。
回復

使用道具 舉報

ID:101869 發表于 2021-4-16 10:07 來自觸屏版 | 顯示全部樓層
cheney03 發表于 2021-4-16 08:59
或者用switch case,比較直觀

switch(表達式){

這是按下按鍵后檢測幾個IO的電平  switch括號里面的表達式寫什么?日出我也想怎么寫但是  這個不是次數之類的變量啊  求解答
回復

使用道具 舉報

ID:101869 發表于 2021-4-16 10:19 來自觸屏版 | 顯示全部樓層
這是一個水位檢測的程序 ,我只是先用兩個水位試試,最終是四個水位探頭,由低到高排列水位1.2.3.4檢測出水位信號后發送遙控信號(在水位幾就閃幾次)由于水位傳感器的排列 所以正常的水位信號是1234連續的  如果2號探頭壞掉  在水位到達3號位置時會只有1.3出現低電平所以需要報警提示有探頭出現問題  我就想要這個效果
回復

使用道具 舉報

ID:301978 發表于 2021-4-16 10:30 | 顯示全部樓層
你的狀態2包括狀態1的情況,話句話說,(sw1_in==0&&sw2_in==0)
                                                       (sw1_in==0&&sw2_in==1)都會導致執行(sw1_in==0)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久综合久久久 | 中文字幕精品一区 | 午夜精品久久久久久久久久久久久 | 欧美日韩一 | 国产亚洲一区二区精品 | 国产一区黄色 | 精品视频在线免费观看 | 91在线观看视频 | 视频一二区 | 国产精品不卡 | 国产成人免费视频网站高清观看视频 | 久久www免费人成看片高清 | 国产精品亚洲第一 | 中文字幕一区二区三区四区五区 | 欧美a在线 | 网络毛片 | 久久精品91 | 日韩视频在线观看 | 国产亚洲一区二区在线观看 | 久久久av| 超碰电影 | www亚洲精品| 亚洲一区视频在线 | 欧美一区二区三区免费电影 | av在线天天| 久久高清国产 | 国产精品99久久久久久大便 | 3级毛片 | 99热首页| 欧美国产精品一区二区三区 | 狠狠夜夜 | 亚洲一区二区三区在线播放 | 在线视频亚洲 | 精品欧美色视频网站在线观看 | 特黄色毛片 | 日本韩国电影免费观看 | 一级黄色在线 | 久久一及片 | 欧美日韩高清一区 | 国产精品久久久久久久久图文区 | 成人在线免费看 |