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

標題: C語言if語句執行問題 [打印本頁]

作者: xnysfh    時間: 2023-6-30 15:01
標題: C語言if語句執行問題
void Reset()
{
    num1 = 0;
    num2 = 0;
    step = 0;
    LcdFullClear();
}
/* 數字鍵動作函數,n-按鍵輸入的數值 */
void NumKeyAction(unsigned char n)
{
    unsigned char len;
    unsigned char str[12];
   
    if (step > 1)  //如計算已完成,則重新開始新的計算
    {
        Reset();
    }
    if (step == 0)  //輸入第一操作數
    {
        num1 = num1*10 + n;             //輸入數值累加到原操作數上
        len = LongToString(str, num1);  //新數值轉換為字符串
        LcdShowStr(16-len, 1, str);     //顯示到液晶第二行上
    }
    else            //輸入第二操作數
    {
        num2 = num2*10 + n;             //輸入數值累加到原操作數上
        len = LongToString(str, num2);  //新數值轉換為字符串
        LcdShowStr(16-len, 1, str);     //顯示到液晶第二行上
    }
}
問:執行完 if (step > 1)
    {
        Reset();
    } 之后要直接執行if (step == 0)  
    {
        num1 = num1*10 + n;            
        len = LongToString(str, num1);
        LcdShowStr(16-len, 1, str);   
    }這個if嗎


作者: lkc8210    時間: 2023-6-30 17:55
會直接執行if (step == 0)  
因為step在Reset()里清零了
可以改為
else if (step == 0)  
作者: 飛云居士    時間: 2023-6-30 17:57
是的,執行完step>1,表示第一個if語句執行完了,按語句執行順序,緊接著執行step==0的if語句。第二個if應改成else if。
作者: 13205495918    時間: 2023-6-30 20:12
yes,會繼續執行的reset函數把變量清零了,如果想構成分支語句,需要寫成if else或者if  elseif else形式
作者: Aurelion    時間: 2023-7-1 15:38
會執行的,沒有else形成分支,只是進行了if判斷,會繼續按順序執行語句
作者: chxelc    時間: 2023-7-1 16:22
2L正解,Reset里面將step置0了,故if (step == 0)  為真。
作者: dwping    時間: 2023-7-1 21:11
是的,當 step 大于 1 時,會執行 Reset() 函數重置變量的值。然后程序會繼續執行下一個 if 語句 if (step == 0)。這個 if 語句用于判斷是否輸入第一個操作數,如果條件滿足,會執行相應的操作,包括更新 num1 的值、將其轉換為字符串并在液晶屏上顯示出來。所以在執行完 Reset() 后,會直接執行下一個 if 語句。
作者: TTQ001    時間: 2023-7-1 22:38
執行 if (step > 1) {
         重置();
     }

程序檢查step是否=0,因為reset()置step = 0,所以它執行第二個if語句。
作者: 黑白AS    時間: 2023-7-1 23:02
是的,當執行完`if (step > 1)`中的代碼塊,如果條件滿足,則會執行`Reset()`函數。然后程序會繼續向下執行,直接進入下一個`if (step == 0)`的代碼塊。  如果`if (step == 0)`條件滿足,那么會執行花括號內的代碼,即將`num1`乘以10加上`n`,然后計算`num1`轉換為字符串后的長度存儲到`len`變量中,并將這個字符串以適當的位置顯示在Lcd上。  這兩個if語句是獨立的,執行一個不會影響到另一個。當第一個if條件判斷不滿足時,第一個if塊中的代碼將被忽略,程序直接跳過它繼續向下執行。只有在第一個if條件判斷滿足時,才會執行第一個if塊中的代碼,并且會在執行完后直接進入第二個if塊中的代碼。




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