为什么在loop里面只执行第一个if语句




```int main()
{
    int cards[5];
   int n;
    cin>>n;
    srand(n);
    for (int i=0;i<5;i++)
    {
        cards[i]=rand()%52;
    }
    

    
    string num[5];
    for (int k=0;k<5;k++)
    {   
        cout<<cards[k]<<endl;
        if (0<=cards[k]<=12) 
        {
            num[k]=charact(cards[k])+string(SPADE);
            cout<<'a'<<endl;
        }
        else if (13<=cards[k]<=25)
        {
            num[k]=charact(cards[k]-13)+string(HEART);
            cout<<'b'<<endl;
        }
        else if (26<=cards[k]<=38)
        {
            num[k]=charact(cards[k]-26)+string(CLUB);
            cout<<'c'<<endl;
        }
        else if (39<=cards[k]<=51)
        {
            num[k]=charact(cards[k]-39)+string(DIAMOND);
            cout<<'d'<<endl;
        }
        cout<<cards[k]<<endl;
    }
    
    for (int j=0;j<5;j++)
    {
        cout<<num[j]<<" ";
    }
}
为什么就算是23 他也只执行第一个if语句? (SPADE那些已经定义,扑克花符)

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/308976185646194.png "#left")

条件不能这样写,要用&&,参考:

if (0<=cards[k]<=12) 
改为
if (0<=cards[k] && cards[k]<=12) 

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632