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

else if nie dziala

Object Storage Arubacloud
+1 głos
518 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,590 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,590 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ź 219 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
–2 głosów
1 odpowiedź 327 wizyt
pytanie zadane 6 lutego 2017 w C i C++ przez Sajmi Nowicjusz (150 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...