Esimerkki: Ei-operaattori
Ei-operaattoria voidaan käyttää if-lauseessa totuusarvo-muuttujien kanssa seuraavasti.
Tehdään ohjelma, jossa ikkunan taustaväri muuttuu sen mukaan, missä hiiren osoitin on. Jos hiiren osoitin on keskilinjan vasemmalla puolen, niin ikkunan taustaväri on punainen. Jos hiiren osoitin on keskilinjan oikealla puolen, niin ikkunan taustaväri on vihreä. Hiiren vaakasuuntainen paikka saadaan komennolla: mouseX;. Voit lukea lisätiedoista lisää hiiri-komennoista. Kokonainen ohjelma on seuraava.
Aja ohjelma ja liikuta hiirtä oikealle ja vasemmalle. Mitä havaitset? Jos ottaisit mukaan hiiren pystykoordinaatin lukevan komennon: mouseY; niin kuinka saisit ikkunan jaettua neljään osaan, niin että väri muuttuisi, jokaisessa osassa hiiren liikkeiden mukaan? Tällöin tarvitset kaksi totuusarvo muuttujaa ja JA-operaattoria. Ohjelman koodi olisi seuraavanlainen.
Kun ikkunan jaetaan neljään osaan, niin ehdot toimivat seuraavasti.
muuttuja | Muuttujan arvo on tosi. |
!muuttuja | Muuttujan arvo ei ole tosi (= epätosi). |
Tehdään ohjelma, jossa ikkunan taustaväri muuttuu sen mukaan, missä hiiren osoitin on. Jos hiiren osoitin on keskilinjan vasemmalla puolen, niin ikkunan taustaväri on punainen. Jos hiiren osoitin on keskilinjan oikealla puolen, niin ikkunan taustaväri on vihreä. Hiiren vaakasuuntainen paikka saadaan komennolla: mouseX;. Voit lukea lisätiedoista lisää hiiri-komennoista. Kokonainen ohjelma on seuraava.
|
// Ohjelman tehnyt e-Oppi Oy
// 19.3.2017
boolean vari = true; // Määritellään totuusarvo-muuttuja
void setup() {
size(600,600); // Ikkunan koko
}
void draw() {
if (mouseX > 300) { // Jos hiiri on pystyviivan oikealla puolen
vari = false; // niin aseta arvo false (= epätosi)
} else { // muutoin
vari = true; // aseta arvo true (= tosi)
}
if (vari) { // Jos vari on true (= tosi), niin
background(255,0,0); // aseta taustaväri punaiseksi
}
if (!vari) { // Jos vari ei ole true eli on false (=epätosi)
background(0,255,0); // aseta taustaväri vihreäksi.
}
line(300,0,300,600); // Piirrä keskelle ikkunaa pystyviiva
}
Aja ohjelma ja liikuta hiirtä oikealle ja vasemmalle. Mitä havaitset? Jos ottaisit mukaan hiiren pystykoordinaatin lukevan komennon: mouseY; niin kuinka saisit ikkunan jaettua neljään osaan, niin että väri muuttuisi, jokaisessa osassa hiiren liikkeiden mukaan? Tällöin tarvitset kaksi totuusarvo muuttujaa ja JA-operaattoria. Ohjelman koodi olisi seuraavanlainen.
// Ohjelman tehnyt e-Oppi Oy
// 19.3.2017
boolean vari1 = true; // Määritellään totuusarvo-muuttuja vari1
boolean vari2 = true; // Määritellään totuusarvo-muuttuja vari2
void setup() {
size(600,600); // Ikkunan koko
}
void draw() {
if (mouseX > 300) { // Jos hiiri on pystyviivan oikealla puolen, niin
vari1 = false; // aseta arvo false (= epätosi)
} else { // muutoin
vari1 = true; // aseta arvo true (= tosi)
}
if (mouseY > 300) { // Jos hiiri on vaakaviivan alemmalla puolen, niin
vari2 = false; // aseta arvo false (= epätosi)
} else { // muutoin
vari2 = true; // aseta arvo true (= tosi)
}
if ((vari1) && (vari2)) { // Jos vari1 on true JA vari2 on true, niin
background(255,0,0); // aseta taustaväri punaiseksi
}
if ((vari1) && (!vari2)) { // Jos vari1 on true JA vari2 on false, niin
background(0,0,255); // aseta taustaväri siniseksi
}
if ((!vari1) && (vari2)) { // Jos vari1 on false ja vari2 on true, niin
background(0,255,0); // aseta taustaväri vihreäksi.
}
if ((!vari1) && (!vari2)) { // Jos vari1 on false ha vari2 on false, niin
background(255,255,0); // aseta taustaväri keltaiseksi.
}
line(300,0,300,600); // Piirrä keskelle ikkunaa pystyviiva
line(0,300,600,300); // Piirrä keskelle ikkunaa vaakaviiva
}
Kun ikkunan jaetaan neljään osaan, niin ehdot toimivat seuraavasti.
Jos (vari1 = tosi) JA (vari2 = tosi), niin punainen |
Jos (vari1 = epätosi) JA (vari2 = tosi), niin vihreä |
Jos (vari1 = tosi) JA (vari2 = epätosi), niin sininen |
Jos (vari1 = epätosi) JA (vari2 = epätosi), niin keltainen |