首页 > 解决方案 > 有没有其他方法可以使用 else if

问题描述

else if似乎不起作用,无论我输入什么信息,我都只会收到 if 语句中的第一句话。我尝试了很多东西,但似乎都没有。
我需要if else声明才能工作,因为我的程序就像工作面试,并且根据我输入的信息,如果我被接受,我应该得到什么。

这是我的代码:

#include <iostream>
#include <string>
using namespace std;

int main ()
{
    setlocale(LC_ALL,"");
    //Variabler och strings

    string kön;
    string barn;
    int stopp;
    int ålder;

    //Frågor
    cout << "Vad har du för kön? (Kvinna/Man)" << endl;
    cin>>kön;
    cout << "Hur gammal är du?" << endl;
    cin>>ålder;
    cout << "Har du barn?" << endl;
    cin>>barn;

    if(kön=="Kvinna" || "kvinna" && ålder<30 && barn=="Nej" || "nej")
    {
        cout << "Du är kvalificerad för jobbet eftersom du är under 30 och har inte barn";
    }
    else if (kön=="Man" || "man" && ålder>30 && barn=="Ja" ||"ja")
    {
         cout << "Du är inte kvalificerad eftersom du har barn och du är över 30";
    }
    else if (kön=="Kvinna" || "kvinna" && ålder>30 && barn=="Ja" || "ja")
    {
        cout << "Du är inte kvalificerad eftersom du är kvinna, har barn och du är över 30";
    }
    else if (kön=="Man" || "man" && ålder<30 && barn=="Nej" || "nej")
    {
        cout << "Du är kvalificerad för jobbet eftersom du är man, under 30 och har inte barn";
    }
    else if (kön=="Kvinna" || "kvinna" && ålder>30 && barn=="Nej" || "nej")
    {
        cout << "Du är inte kvalificerad eftersom du är kvinna och du är över 30";
    }
    else if (kön=="Man" || "man" && ålder<30 && barn=="Ja" || "ja")
    {
        cout << "Du är kvalificerad eftersom du är man och under 30";
    }
    else if (kön == "Man" || "man" && ålder>30 && barn == "Nej" || "nej")
    {
        cout << "Du är kvalificerad för jobbet eftersom du är man och du har inte barn";
    }
    
    cin>>stopp;
    return 0;
}

标签: c++if-statement

解决方案


如果您的第一个语句为真,您将仅从“if”获得输出。您如何期望它也会到达 else 块?无论值如何,您的第一个语句始终为真。因为任何非零值在 C 中都将为真/C++。在 C++ (x=="A" || "B")中将始终返回 true。因为“B”被视为 true。


推荐阅读