• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

else if nie dziala

Cloud VPS
+1 głos
1,056 wizyt
pytanie zadane 11 czerwca 2015 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)

hej mam problem z tym voidem .. juz nie wiem co jest nie tak od godziny sie mecze ...

void p_ocen()
{czyszczenie2();
    cout << "===========" << endl;
    cout << "OCENA ANIME" << endl;
    cout << "===========" << endl;
    cin >> wyb;
    if(wyb=="pomoc"||wyb=="help"||wyb=="opis"||wyb=="?")pomoc();
    else if(wyb=="wyjdz"||wyb=="exit"||wyb=="quit"||wyb=="koniec")czyszczenie2();menu();
    else if(wyb=="ocena"||wyb=="ocen")czyszczenie2();ocen();
    else
    {
        czyszczenie2();
        cout << "==============" << endl;
        cout << "BLEDNA KOMENDA" << endl;
        cout << "==============" << endl;
        cout << "Zobacz liste komend:" << endl << endl;
        cout << "pomoc, help, opis, ? -> Opis liczenia oceny anime." << endl;
        cout << "wyjdz, exit, quit, koniec -> Powrot do menu glownego." << endl;
        cout << "ocena, ocen -> Przechodzi do oceniania anime" << endl;czyszczenie();p_ocen();
    }
}

Logi błędów

||=== Build: Debug in Asystent (compiler: GNU GCC Compiler) ===|
C:\Documents and Settings\Shiro\Pulpit\Asystent\main.cpp||In function 'void p_ocen()':|
C:\Documents and Settings\Shiro\Pulpit\Asystent\main.cpp|130|error: 'else' without a previous 'if'|
C:\Documents and Settings\Shiro\Pulpit\Asystent\main.cpp|131|error: 'else' without a previous 'if'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Z góry wielkie dzieki za pomoc :)

3 odpowiedzi

+5 głosów
odpowiedź 12 czerwca 2015 przez Pieniek Gaduła (3,330 p.)
wybrane 13 czerwca 2015 przez Shiro
 
Najlepsza

Postaw klamry i po kłopocie

else if(wyb=="wyjdz"||wyb=="exit"||wyb=="quit"||wyb=="koniec")czyszczenie2();menu();
    else if

Jeśli nie postawiasz klamerek if wykona tylko czyszczenie a potem menu już jest zawsze wywoływane więc else nie wie gdzie jest jego if

komentarz 13 czerwca 2015 przez Shiro Stary wyjadacz (10,300 p.)
Racja niezauwazyłem ze sa tam 2 wywołania funkcji i przez potrzebne sa klamre dzieki :)
+4 głosów
odpowiedź 12 czerwca 2015 przez tede774 Bywalec (2,650 p.)
Tak jak mówi kolega powyżej. Należy pamięciać, że w if, else if, else, wszelkie pętle i case w switch bez klamer wykonają tylko jedno polecenie zakończone średnikiem, a jeśli się chce ich umieścić więcej to należy umieścić je w klamrach.
komentarz 13 czerwca 2015 przez Shiro Stary wyjadacz (10,300 p.)

Po co ta klamra ?

#include <iostream>
 
using namespace std;
 
int main(){
    int x = 5;
 
    { // o ta 
        int x = 6;
        cout << x << endl;
    } // no i ta zamykająca :) 
    cout << x << endl;
 
    cin >> x;
}

 

komentarz 13 czerwca 2015 przez criss Mędrzec (172,570 p.)
Właśnie to tłumaczył. Skompiluj, to zobaczysz.
komentarz 14 czerwca 2015 przez Shiro Stary wyjadacz (10,300 p.)
niestety nic nierozumeim ;/
komentarz 14 czerwca 2015 przez criss Mędrzec (172,570 p.)
Bezpośrednio w mainie masz zadeklarowaną zmienną x. Za chwile kolejna deklaracja zmiennej o tej samej nazwie. Dzięki temu, że druga deklaracjaj jest wewnątrz klamrowego nawiasu, ten "drugi x" będzie istnieć tylko w nim, tzn. po cout'cie zniknie. Dlatego też kompilator nei wyrzuci błędu wielokrotnej deklaracji.
komentarz 14 czerwca 2015 przez Shiro Stary wyjadacz (10,300 p.)
Chyba rozumiem :) Dzięki
0 głosów
odpowiedź 13 czerwca 2015 przez Mieszko I Stary wyjadacz (10,980 p.)
Koniecznie wprowadź klamry po każdej intrukcji if lub else if, we wnętrzu której ma się znaleść więcej niż jedna operacja, którą dany if ma wykonać.

Podobne pytania

0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
–2 głosów
1 odpowiedź 408 wizyt
pytanie zadane 6 lutego 2017 w C i C++ przez Sajmi Nowicjusz (150 p.)

93,482 zapytań

142,414 odpowiedzi

322,761 komentarzy

62,894 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...