Kezdőoldal » Számítástechnika » Programozás » Mit ronthattam el ebben a...

Mit ronthattam el ebben a programban (C++)?

Figyelt kérdés

Mi az amit elronthattam programban, hogy kiírja, hogy "rosszul irtad be"?Kép:

[link]

A segítséget előre is köszönöm!



2016. febr. 22. 13:55
 1/9 anonim ***** válasza:

Az utolsó elágazás feltételét.


Legyen inkább:


(start_valasz != "start" && start_valasz != "exit")

2016. febr. 22. 14:00
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Köszi szépen előszőr így csináltam: if(start_valasz != "start" && "exit" ) és nem volt jo:)
2016. febr. 22. 14:08
 3/9 anonim ***** válasza:
Vagy a második if() legyen else if(), a harmadik pedig sima else().
2016. febr. 22. 14:10
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

> if(start_valasz != "start" && "exit" )


Ennek sincs több értelme, mint az elsőként linkelt változatnak. Az if() paramétere egy olyan kifejezés, ami logikai igen-nem érték lesz. Ezeket kombinálhatod pl. az és/vagy operátorokkal, de azok is logikai kifejezésekkel dolgoznak. Tehát:


start_valasz != "start"

&&

"exit"


De itt az "exit" nem nulla, tehát mindig igazat fog visszaadni. Ez volt a hiba:

valami && IGAZ = valami

valami || IGAZ = IGAZ (a valami-től függetlenül)


Helyesen:


start_valasz != "start" && start_valasz != "exit"

vagy

!(start_valasz == "start" || start_valasz == "exit")


(Ld. még: De-Morgan azonosságok.)

2016. febr. 22. 14:17
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

|| "exit"


rész miatt jelenik meg az üzenet, mert a feltétel ezzel egyenlő:

HA "exit"

HA true


if-ek helyett ezt ajánlom:

// HA start

if(start_valasz == "start")

...

// HA exit

else if(start_valasz == "exit")

...

// HA az előző feltételek egyike sem teljesült (nem start és nem exit)

else

...

2016. febr. 22. 14:44
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

Az utolsó if hibás. Ugyan azt a változód leteszteled hogy egyenlő-e x-el és y-al, és ha az egyikkel nem egyenlő akkor belépsz a ciklusmagba. Mivel mind a kettővel egyszerre nem lehet egyenlő ezért kapod meg az üzenetet.


C++-ban még nem programoztam(meg amúgy is régen:D), de én valahogy így csinálnám:

if(válasz=="aaa" && válasz="bbb"){

és akkor ezen belül kezeled megint a különböző válaszokat

}

majd utána egy else:

else:print"hibás válasz"


De az elseif még jobb amint fent írtak.


vagy:

[link]

2016. febr. 23. 07:57
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

> if(válasz=="aaa" && válasz="bbb")


Egyszerre két értéke biztos nem lesz. :)

2016. febr. 23. 09:53
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:
Akkor || ... mondom rég programoztam, de a szövegből érthető mire gondoltam sztem. :D
2016. febr. 23. 12:07
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

Semmi gond, értettem, csak a kérdező nehogy félreértse.

Respect. :)

2016. febr. 23. 15:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!