Forum » Programiranje » [c++] bool - izpis
[c++] bool - izpis
cosa nostra ::
Kako naj izpišem da nebo napake ? hvala za pomoč
Eroraa :
1 error C2181: illegal else without matching if
2 IntelliSense: expected a statement
Eroraa :
1 error C2181: illegal else without matching if
2 IntelliSense: expected a statement
void abonma::izpis() { cout<<"Ime predstave je "<<ime<<", stevilka predstave je : "<<predstava<<endl; cout<<" dan predstave je " <<izdaja.dan<<endl; cout<<" mesec predstave je " <<izdaja.mesec<<endl; // Preverim dosegljivost predstave if(izdaja.mesec < 11) // če je predstava meseca 12(decembra) je dosegljiva bool dosegljivost=true; // true če je decembra cout<<" Predstava je dosegljiva ker je meseca decembra"<<endl; else bool dosegljivost=false;// false če ni 12 meseca - decembra cout<<" Predstava ni dosegljiva ker ni meseca decembra"<<endl; }
amacar ::
void abonma::izpis() { cout<<"Ime predstave je "<<ime<<", stevilka predstave je : "<<predstava<<endl; cout<<" dan predstave je " <<izdaja.dan<<endl; cout<<" mesec predstave je " <<izdaja.mesec<<endl; // Preverim dosegljivost predstave if(izdaja.mesec < 11) // če je predstava meseca 12(decembra) je dosegljiva { bool dosegljivost=true; // true če je decembra cout<<" Predstava je dosegljiva ker je meseca decembra"<<endl; } else { bool dosegljivost=false;// false če ni 12 meseca - decembra cout<<" Predstava ni dosegljiva ker ni meseca decembra"<<endl; } }
Zgodovina sprememb…
- spremenil: amacar ()
Izbeglica ::
Še razlaga - pri pogojih, večina jezikov dopušča izpuščanje zavitih okelpajev, če imš potem pod njim zgolj eno vrstico, ki ti nekaj izvede.
Ti si imel dve in ti je zato vrnilo napako - compiler si je tvojo kodo tolmačil na ta način :
Dovoljeno bi bilo recimo tudi
Ti si imel dve in ti je zato vrnilo napako - compiler si je tvojo kodo tolmačil na ta način :
if(izdaja.mesec < 11) // če je predstava meseca 12(decembra) je dosegljiva { bool dosegljivost=true; // true če je decembra } cout<<" Predstava je dosegljiva ker je meseca decembra"<<endl; //ni več del pogoja, se vedno izvrši else //nima pripadajočega if stavka; stoji tu sam zase in zato ne dela. { bool dosegljivost=false;// false če ni 12 meseca - decembra } cout<<" Predstava ni dosegljiva ker ni meseca decembra"<<endl; //ni več del else, se izvrši v vsakem primeru
Dovoljeno bi bilo recimo tudi
if(nekaj0 < nekaj1) koda; else //ker je za if zgolj ena vrstica kode, se ve, da pripada ta else if(nekaj0<nekaj1) { koda0; koda1; }
Zgodovina sprememb…
- spremenil: Izbeglica ()
mojca ::
Tvoj "if" stavek se konča z bool dosegljivost=true; Napisal si tole:
Mimogrede: kje oz. kako si nameraval uporabiti spremenljivko dosegljivost? V trenutni implementaciji je verjetno preveč lokalna, da bi jo lahko še kje koristno uporabil.
Npr:
Oklepaje lahko zamikaš tudi na druge načine, a počni to konsistentno:
if(izdaja.mesec < 11) { bool dosegljivost=true; } cout<<" Predstava je dosegljiva ker je meseca decembra"<<endl; else { bool dosegljivost=false; } cout<<" Predstava ni dosegljiva ker ni meseca decembra"<<endl;
- uporabljaj zavite oklepaje za kodo, ki sodi skupaj (za "if" in "else" stavkom)
- nauči se pravilno zamikati vrstice (cout se pri tebi začne en stolpec prezgodaj, prvi komentar je čudno zamaknjen naprej; tudi amacarjevi oglati oklepaji so skrajno čudno in nepregledno postavljeni)
- piši slovnično pravilno - ljudje bodo želeli brati kodo s komentarji za teboj
- uporabljaj presledke okrog ločil, sploh okrog << pri cout zaradi večje preglednosti
Mimogrede: kje oz. kako si nameraval uporabiti spremenljivko dosegljivost? V trenutni implementaciji je verjetno preveč lokalna, da bi jo lahko še kje koristno uporabil.
Npr:
void abonma::izpis() { cout << "Ime predstave je " << ime << ", stevilka predstave je: " << predstava << endl; cout << " dan predstave je " << izdaja.dan << endl; cout << " mesec predstave je " << izdaja.mesec << endl; bool dosegljivost = false; // Preverim dosegljivost predstave if(izdaja.mesec < 11) { // če je predstava v 12. mesecu (decembra), je dosegljiva dosegljivost = true; // true, če je decembra cout << " Predstava je dosegljiva, ker je meseca decembra" << endl; } else { dosegljivost = false; // false, če ni v 12. mesecu (decembra) [lahko bi izpustil, ker se nastavi že zgoraj] cout << " Predstava ni dosegljiva, ker ni meseca decembra" << endl; } }
Oklepaje lahko zamikaš tudi na druge načine, a počni to konsistentno:
if(izdaja.mesec < 11) { dosegljivost = true; cout << " Predstava je dosegljiva, ker je meseca decembra" << endl; } else { dosegljivost = false; cout << " Predstava ni dosegljiva, ker ni meseca decembra" << endl; }
Zgodovina sprememb…
- spremenila: mojca ()
mallard ::
Napisal si:
Men to ne gre skup... če je mesec manjši od 11 je predstava decembra?
Kakorkoli, namesto if/else stavka je lepše
if(izdaja.mesec < 11) { // če je predstava v 12. mesecu (decembra), je dosegljiva dosegljivost = true; // true, če je decembra cout << " Predstava je dosegljiva, ker je meseca decembra" << endl;
Men to ne gre skup... če je mesec manjši od 11 je predstava decembra?
Kakorkoli, namesto if/else stavka je lepše
bool dosegljivost = izdaja.mesec < 11;