Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Karzan kysymykset...

Karza [06.12.2005 01:58:02]

#

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.

FooBat [06.12.2005 02:22:24]

#

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/_ws.html

Karza [07.12.2005 18:54:35]

#

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?

Megant [07.12.2005 19:16:47]

#

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 :)

Metabolix [07.12.2005 20:44:47]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta