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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6988|回復: 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; } ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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;程序判斷三次之后就跳出循環了
    }
回復

使用道具 舉報

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

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

使用道具 舉報

6#
ID:824490 發表于 2021-4-15 22:20 | 只看該作者
如果能確定要判斷的值(多個),就用switch。。。case
如果確定要判斷的值不等于某值,就用 if (regx != value)
回復

使用道具 舉報

7#
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,以此類推
回復

使用道具 舉報

8#
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;
}
回復

使用道具 舉報

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

使用道具 舉報

10#
ID:101869 發表于 2021-4-16 10:07 來自觸屏版 | 只看該作者
cheney03 發表于 2021-4-16 08:59
或者用switch case,比較直觀

switch(表達式){

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

使用道具 舉報

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

使用道具 舉報

12#
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 單片機教程網

快速回復 返回頂部 返回列表