5 svar
195 visningar
mjatte.mj är nöjd med hjälpen
mjatte.mj 70 – Fd. Medlem
Postad: 16 jan 2019 20:46

"code will never be executed"

Programmet fungerar fint förutom när jag kommer till en av de sista raderna (se i programmet nedan)..

 

Det som går fel är att om jag skriver in "ja" så visas texten som skulle stått om jag skrev in nej + ja....

 

 

 

 

 

 

 

 

#include <iostream>

#include <iomanip>

using namespace std;

 


int main(int argc, const char * argv[])

{

 


    double tid, pers;

    string namn, namn2, rang, rang2, datum;

    string svar;

    

    

    {

    cout << "Ange ditt fullständiga namn: " << endl;

    cin >> namn;

    cin >> namn2;

    cout << "Vilken restaurang vill du ringa? " << endl;

    cin >> rang;

    cin >> rang2;

    cout << "vilket dag vill du boka? " << endl;

    cin >> datum;

}

   

    

    

    cout << "\n---DIALOG---" << "\n\n--Hej! Mitt namn är " << namn << " " << namn2 << "." << endl;

    cout << "\t\tHejsan " << namn << ", du har kommit till " << rang <<  ". Vad kan vi hjälpa dig med? --" << endl;

    cout << "--Jag skulle vilja boka ett bord på " << datum << ", finns det något bord ledigt?" << endl;

    cout << "\t\t Jag ska kolla.....hmm...vilken tid vill du boka?--" << endl;

    cin >> tid;

   

    

    

    if(tid >= 15 && tid < 24)

    {

        cout << "\t\t Det ska nog gå att fixa. Hur många personer är ni?--" << endl;

        cin >> pers;

        

        

        if(pers <= 8)

        {

            cout << "\t\tNi är välkomna vid " << tid << " på " << datum << ".--" << endl;

        }

        

        else

        {

            cout << "\t\tVi har tyvärr bara plats för 8 personer då.--" << endl;

            cout << "--Jaha okej, vad synd....Hejdå" << endl;

        }

    }

    

else if(tid >= 11 && tid <= 14)

{

    cout << "\t\tVi serverar endast dagens lunch då." << endl;

    cout << "\t\tVill ni ha lunch istället?--" << endl;

    cin >> svar;

    

   

    

    

    if(svar == "nej" || "nej tack")

    {

            cout << "\t\tOkej jag ber om ursäkt för att vi inte kunde uppfylla ditt önskemål...--" << endl;

            cout << "--Det är okej, hejdå!" << endl;

        

    

        

    }

     else if(svar == "ja" || "ja tack").                                              "CODE WILL NEVER BE EXECUTED"

        {

            cout << "\t\tVad roligt, ni är välkomna vid " << tid << ".--" << endl;

         }

    

}

    

    return 0;

}

emilg 478
Postad: 16 jan 2019 20:57

Tittade bara snabbt men 

if(svar == "nej" || "nej tack")

blir väl alltid sant. Du har glömt svar == till "nej tack".

mjatte.mj 70 – Fd. Medlem
Postad: 16 jan 2019 21:05

Förstår inte vad du menar? Det står ju över "ja" påståendet? ;)

Laguna Online 28550
Postad: 16 jan 2019 21:07

Ja, men eftersom det är fel där också, och den övre koden alltid körs, så kommer nästa if aldrig att köras, vilket är det som rapporteras.

Laguna Online 28550
Postad: 16 jan 2019 21:08

Du borde skriva också att den där texten med "will never be executed" kommer när du kompilerar programmet. Nu var det uppenbart i det här fallet. Bra att du pekade ut raden som rapporterades.

AndersW 1622
Postad: 16 jan 2019 21:14

Det emilg menar är att du kan inte skriva a==b||c du måste skriva a==b||a==c

Svara Avbryt
Close