5 svar
50 visningar
mjatte.mj är nöjd med hjälpen!
mjatte.mj 53
Postad: 16 jan 2019

"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 129
Postad: 16 jan 2019

Tittade bara snabbt men 

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

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

mjatte.mj 53
Postad: 16 jan 2019

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

Laguna 5108
Postad: 16 jan 2019

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 5108
Postad: 16 jan 2019

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.

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

Svara Avbryt
Close