用mini板子写程序时,一个主函数中同时有两个if语句。

2019-07-21 02:45发布

if(humidity<20)        GPIO_ResetBits(GPIOD, GPIO_Pin_2);
                else GPIO_SetBits(GPIOD, GPIO_Pin_2);
               
                if(24<temperature<26)
{
                        TIM1_PWM_Init(899,0); //2&#187;·&#214;&#198;μ&#161;£PWM&#198;μ&#194;ê=72000/(89+1)=800Khz
                TIM_OC1PolarityConfig(TIM1,TIM_OCPolarity_Low);        //μíμ&#231;&#198;&#189;óDD§                               
                TIM_SetCompare1(TIM1,450);
}
else if(temperature>26)
        {       
                TIM1_PWM_Init(899,0); //2&#187;·&#214;&#198;μ&#161;£PWM&#198;μ&#194;ê=72000/(899+1)=80Khz
                        TIM_OC1PolarityConfig(TIM1,TIM_OCPolarity_Low);        //μíμ&#231;&#198;&#189;óDD§                       
                TIM_SetCompare1(TIM1,45);               
        }
else GPIO_SetBits(GPIOA, GPIO_Pin_8);

求问大佬,这样的程序可以吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
woshixiongda
1楼-- · 2019-07-21 03:49
 精彩回答 2  元偷偷看……
peng1554
2楼-- · 2019-07-21 05:32
“if(24<temperature<26)”这个不对
电脑小白
3楼-- · 2019-07-21 05:41
if((24<temperature)&&(temperature<26))
{
......
}
else  if(temperature>=26){
......
}
else {
......
//这里只有if(temperature<=24)的情况
}
电脑小白
4楼-- · 2019-07-21 09:53

if((24<temperature)&&(temperature<26))
{
......
}
else  if(temperature>26){
......
}
else {
......
//这里有(temperature<=24)的情况 和(temperature==26)的情况,所以这种写法是不对的
}
弦子的弦
5楼-- · 2019-07-21 10:30
本帖最后由 弦子的弦 于 2019-4-17 10:52 编辑

你这样写的话,会出现逻辑问题。
[mw_shl_code=c,true]#include <stdio.h>
int num = -12;

int main(void) {
        // your code goes here
        if(-2<num<-18)
                printf("num 的值在(-2,-18)之间");
        else
            printf("num 的值不在(-2,-18)之间");
        return 0;
}[/mw_shl_code]
这段代码最后会打印出:"num 的值不在(-2,-18)之间",C会先判断 -2<num,结果是真的,所以返回真(一个非零数,一般是1),接着再判断1<-18,结果是假,返回了0,就进入了else语句了。
啥也不会的菜鸟
6楼-- · 2019-07-21 11:52
 精彩回答 2  元偷偷看……

一周热门 更多>