Tein sitten näille mun kysymyksille oman aiheen, ettei uusia aiheita tarvitse tehdä. Eli kysyn täällä silloin kun tulee mieleen (usein siis)
Oli mielessä moniakin kysymyksiä, mutta unohdin ne. Nyt tulee mieleen vain yksi: Seuraava koodipätkä kertoo, kumpi käyttäjän syöttämistä kahdesta luvusta on pienempi:
int luku1, luku2; int pienempi; cout << "Syötä kaksi lukua: "; cin >> luku1 >> luku2; cout << "Luvuista pienempi: "; pienempi = luku1 < luku2 ? luku1 : luku2; cout << pienempi;
Varsinaista ongelmaa ei nyt ole, mutta en ymmärrä, tuota laskutapaa. Pienempi = (luku1 on pienempi kuin luku2), sitten tarkistetaan onko se totta ja sen ehtona on, että luku1 on pienempi kuin luku2... mutta mistä se tietää, että jos se ei olekkaan pienempi, niin se ilmoittaa sen toisen, vaihtaa vaan se siihen toiseen mahdolliseen? no jaa.
Edit: Itseasiassa tuo pätkä on Päivi Hietasen C++ ja olio-ohjelmointi -kirjasta, mutta siinä ei selitetty kovin konkreettisesti tuota... (on muuten hyvä kirja).
EDIT2: Nyt tulikin mieleen toinen kysymys: Mitä ws tarkoittaa koodissa? esim: cin << ws << valinta;. Otin sen pois, mutta mikään ei muuttunut.
Tuo ?:-rakenne on funktionaalinen ehtolause, joka palauttaa arvon riippuen ehdon totuusarvosta. Yleisesti en suosittele sen käyttöä muissa kuin todella yksinkertaisissa tapauksissa ja silti yleensä normaali if-else on selkeämpi.
muuttuja = ehto ? paluuarvojostosi : josepätosi; === if (ehto) { muuttuja = paluuarvojostosi } else { muuttuja = josepätosi }
ws syö whitespaceja eli välilyöntejä, tabeja ja rivinvaihtoja. Koodiesimerkkki:
http://www.cplusplus.com/ref/iostream/istream/
Mikä goto -käskyssä on niin hirveää? kun kaikki sanoo, että se on myrkkyä koodile ym... ensinnäkin, mikä siinä on niin hirveää ihan konkreettisesti ja toiseksi; mitä sen tilalla sitten käyttäis?
Kun kirjoitat sitä paljon koodiin, niin koodista on (saattaa olla )hirveän vaikea saada selvää, ja yleensä sen paikalla on helppo käyttää silmukoita.
Kyllä voit gotoa käyttää, mutta älä käytä paljoa :)
Nyrkkisääntönä voi sanoa, että jos voit sen sijaan käyttää silmukkaa, se on usein "parempi" vaihtoehto, ja sitten osaamattomilla koodarinaluilla on toisinaan taipumusta tunkea kaikki koodi main-funktioon ja hypellä epämääräisillä gotoilla ympäriinsä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.