Forum » Programiranje » problem v c++
problem v c++
__jack__ ::
Prilepil sem del kode ki sem jo uporabil pri eni nalogi.
Kje je problem, da program 2x zahteva, da vnesem D, če pa vnesem d pa samo 1x??
v mainu
v funkciji
Kje je problem, da program 2x zahteva, da vnesem D, če pa vnesem d pa samo 1x??
v mainu
if((vnosChar()!='d')&&(vnosChar()!='D')) // ce odgovori ne, koncaj zanko { break; }
v funkciji
char vnosChar () // Funkcija vnosChar { char odg; cin >> odg; return odg; // preberi vnos in vrni eno crko }
- spremenil: Mavrik ()
redo ::
Zato ker če je (v izrazu znotraj if stavka, operator &&) prvi operand false, potem bo cela operacija && false in se po drugem operandu ni potrebno spraševati (in se v C kot tudi v C++ zaradi optimizacije ne).
Če pa je prvi operand true (se pravi, je funkcija vrnila nekaj drugega kot 'd'), potem se izvede drugi operand, ki še enkrat pokliče funkcijo vnosChar. Če ta vrne 'D', potem je cel izraz false, sicer (tudi če vrne 'd') se izvede break stavek.
Ti verjetno hočeš:
char c=vnosChar();
if( c!='d' && c!='D' ) break;
Če pa je prvi operand true (se pravi, je funkcija vrnila nekaj drugega kot 'd'), potem se izvede drugi operand, ki še enkrat pokliče funkcijo vnosChar. Če ta vrne 'D', potem je cel izraz false, sicer (tudi če vrne 'd') se izvede break stavek.
Ti verjetno hočeš:
char c=vnosChar();
if( c!='d' && c!='D' ) break;
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | KalkulatorOddelek: Programiranje | 1316 (1083) | lebdim |
» | [Java] While zankaOddelek: Programiranje | 2367 (1950) | kunigunda |
» | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 10411 (6149) | technolog |
» | [C/C++] in folder listOddelek: Programiranje | 844 (787) | shock |
» | [C] čuden izpis iz txt dat. na zaslonOddelek: Programiranje | 1665 (1402) | l0g1t3ch |