Haluamme kirjoittaa ohjelman, joka toimii seuraavasti.
- Jos piirtoikkunan leveys on suurempi kuin piirtoikkunan korkeus, piirretään “oikealla osoittava” kolmio.
- Muussa tapauksessa piirretään “alas osoittava” kolmio.
Ohjelma toimii siis eri tavoin eri tilanteissa. Tämä voidaan
ohjelmoida ehdollisen suorittamisen avulla. Ehdollisessa
suorittamisessa käytetään Processing-kielen varattuja sanoja if
(jos) sekä else
(muutoin).
<<ehdollinen-kolmio-oikealle>>
if-else
-rakenteessa on
ehto
, joka määrää mikä lauseke suoritetaan- lauseke, joka suoritetaan jos ehto on tosi
- lauseke, joka suoritetaan jos ehto ei ole tosi.
if (ehto) lauseke suoritetaan jos ehto tosi; else lauseke suoritetaan jos ehto ei tosi;
Huomaa, että
ehto
kirjoitetaan sulkujen sisäänif
-rivin lopussa ei ole puolipistettäelse
-rivin lopussa ei ole puolipistettä.
Yleensä lausekerivit sisennetään, jotta nähdään mihin lausekkeeseen
ehto vaikuttaa. Processing-editori sisentää lausekkeet
valikosta Edit
\(→\) Autoformat
tai suoraan
näppäinkomennolla Ctrl+t
.
Jos if-else
-rakenteen ehdossa vertaillaan lukuja, tarvitaan
lukujen vertailuoperaattoreita.
ehtolauseke | merkitys |
---|---|
a < b | onko a pienempi kuin b |
a <= b | onko a pienempi tai yhtä suuri kuin b |
a > b | onko a suurempi kuin b |
a >= b | onko a suurempi tai yhtä suuri kuin b |
a == b | onko a yhtä suuri kuin b |
a != b | onko a eri suuri kuin b |
Yllättävintä on yhtäsuuruuden testaaminen.
Lukujen
a
jab
yhtäsuuruus testataan vertailuoperaattorilla==
, jossa on kaksi yhtäsuuruusmerkkiä peräkkäin.
Piirretään neliön muotoiseen piirtoikkunaan ympyrä tai nelikulmio
riippuen vakion P
arvosta. Jos P
on alle 95 piirretään ympyrä,
muuten nelikulmio.
Ensin vakio on suurempi kuin 95, joten piirretään nelikulmio.
size (250, 250);
final float P = 96;
<<ehdollinen-ympyra-nelio-runko>>
Kun vakion arvoa lasketaan, piirretään ympyrä.
size (250, 250);
final float P = 93;
<<ehdollinen-ympyra-nelio-runko>>
Seuraavassa esimerkissä piirretään neliö neliön muotoiseen
piirtoikkunan keskelle. Piirtoikkunan vasempaan yläkulmaan
piirretään toinen samankokoinen neliö, jos kuvassa on sille
tilaa. Neliön sivun pituuden määrää vakio SIVU
.
size (200, 200);
final float SIVU = 60;
<<ehdollinen-neliot-runko>>
Kun neliön sivun pituutta kasvatetaan, toista neliötä ei enää piirretä.
size (200, 200);
final float SIVU = 80;
<<ehdollinen-neliot-runko>>
if
-rakenteessa on
ehto
, joka määrää suoritetaanko seuraava lauseke- lauseke, joka suoritetaan jos ehto on tosi
if (ehto) lauseke suoritetaan jos ehto tosi;
- Kirjoita ohjelma, joka asettaa piirtoikkunan taustan väriksi
vihreä värin, jos vakion
P
arvo on vähintään 100. Muussa tapauksessa avataan vain harmaa piirtoikkuna. Testaa ohjelmasi toimivuus muuttamalla vakionP
arvoa. - Kirjoita ohjelma, joka piirtää neliön muotoisen piirtoikkunan
keskelle mahdollisimman suuren ympyrän. Jos vakion
P
arvo on vähintään 100, ympyrä on vihreä. Muussa tapauksessa ympyrä on oranssi. Testaa ohjelmasi toimivuus muuttamalla vakionP
arvoa. - Kirjoita ohjelma, joka asettaa piirtoikkunan taustaväriksi valkoisen, mikäli piirtoikkuna on neliön muotoinen. Muussa tapauksessa taustaväriksi asetetaan musta. Testaa ohjelmasi toimivuus muuttamalla piirtoikkunan kokoa.
- Kirjoita ohjelma, joka piirtää piirtoikkunan vasempaan yläkulmaan \(100× 100\)-kokoisen neliön, jos ikkunan leveys on suurempi kuin korkeus. Muussa tapauksessa piirtoikkunan vasempaan yläkulmaan piirretään ympyrä, jonka halkaisija on 100. Voi olettaa, että piirtoikkunan leveys ja korkeus ovat vähintään 100. Testaa ohjelmasi toimivuus muuttamalla piirtoikkunan leveyttä ja korkeutta.
- Kirjoita ohjelma, joka piirtää piirtoikkunan vasempaan
yläkulmaan neliön. Neliön sivun pituus on vakio
SIVU
. Jos piirretyn neliön viereen mahtuu toinen samankokoinen neliö, niin myös toinen neliö piirretään. Testaa ohjelmasi toimivuus muuttamalla piirtoikkunan leveyttä ja vakionSIVU
suuruutta. Voit olettaa, että piirtoikkunan leveys ja korkeus ovat molemmat vähintään yhtä suuria kuinSIVU
. - Kirjoita ohjelma, joka piirtää piirtoikkunan vasempaan reunaan ympyrän, jonka halkaisija on piirtoikkunan korkeus. Ohjelma piirtää myös piirtoikkunan oikeaan reunaan samanlaisen ympyrän, mikäli jälkimmäinen ympyrä ei mene ensin piirretyn päälle. Testaa ohjelmasi toimivuus muuttamalla piirtoikkunan leveyttä ja korkeutta. Voit olettaa, että piirtoikkunan leveys on korkeutta suurempi.
-
size (300, 300); final float P = 101; colorMode (HSB, 100); if (P >= 100) background (44, 66, 71);
-
size (300, 300); final float P = 101; colorMode (HSB, 100); noStroke (); if (P >= 100) fill (21, 100, 71); else fill (6, 100, 100); final float SADE = width / 2.0; ellipse (SADE, SADE, width, width);
-
size (300, 300); colorMode (HSB, 100); if (width == height) background (100); else background (0);
-
size (300, 200); if (width > height) rect (0, 0, 100, 100); else ellipse (50, 50, 100, 100);
-
size (300, 200); final float SIVU = 180; rect (0, 0, SIVU, SIVU); if (width >= 2 * SIVU) rect (SIVU, 0, SIVU, SIVU);
-
size (600, 200); final float SADE = height / 2.0; ellipse (SADE, SADE, height, height); if (width >= 2 * height) ellipse (width - SADE, SADE, height, height);