關於 if 判斷程式,邏輯 比較嚴謹的寫法

2021-10-02 00:14:56 字數 992 閱讀 5174

if(yaban_state == on)

else

if (p->ya_ban ==off)

else

else

if (prtdata->time_count > (uint16_t)(p->yanshi *1000.0f))

}}

上面第一段程式關於壓板狀態的判斷, 當 yaban_state != 0n 時,壓板狀態會顯示「退出」, 正常情況來講,按照第二段程式的邏輯寫法,一定會執行如下 return 嗎? 答案是不一定!!!

if (p->ya_ban ==off)

如果因為某種原因導致改變了 yaban_state 壓板變數的值,使得其既不等於on 也不等於off,此時呈現的效果就是 壓板狀態是「退出」 但if (p->ya_ban ==off)邏輯不成立,導致執行的是壓板投入狀態的邏輯。

if(yaban_state == off)

else

if (p->ya_ban ==off)

else

else

if (prtdata->time_count > (uint16_t)(p->yanshi *1000.0f))

}}

或者

if(yaban_state == on)

else

if (p->ya_ban ==on)

else

if (prtdata->time_count > (uint16_t)(p->yanshi *1000.0f))

}}else

以上兩種(因為保護功能寧可被無故開啟,也不能被無故關掉,所以對於保護來說還是盡量按照第一種)寫法, 即使yaban_state被意外改變,既不等於on也不等於off,在顯示和保護判斷上呈現的是一致的邏輯。

R語言程式邏輯驗證判斷

class 函式獲取型別,返回字串 data iris str iris 2 data iris 1 4 data1 as.vector data str data1 data 1,2 class data 1,1 numeric 判斷資料是否為數值型i length data 1,判斷資料維度判斷...

遠端控制Android程式邏輯的嘗試

這個月花了較長時間寫乙個demo,希望可以用socket遠端控制android上的程式,避免反覆地重啟程式。想法很簡單,就是利用socket或pipe的原理實現邏輯和使用者介面的松耦合。不過事實上做出來發現效果不太理想,不過可以用。原始碼上傳到github上 其實這種想法基本上 於android u...

小程式學習(三)小程式邏輯層的註冊程式和場景值

之前學習了小程式的基本架構和檔案的型別,然後再參照官方的dome,對小程式也有了一些了解。下面了解一下小程式框架的邏輯層。小程式的邏輯層主要包含以下幾個點 1 註冊程式 2 場景值 3 註冊頁面 4 路由 5 模組化 6 api 一 註冊程式 ojbect的常用引數有 屬性型別 描述觸發時機 onl...