Esimerkki: Ei-operaattori

Ei-operaattoria voidaan käyttää if-lauseessa totuusarvo-muuttujien kanssa 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.

Sanallinen algoritmi
  1. Määrittele totuusarvo-muuttuja vari ja anna sille alkuarvo: true.
  2. Aseta ikkunan kooksi 600 px vaakaan ja 600 px pystyyn.
  3. Jos hiiren koordinaatti on suurempi kuin 300, niin
    aseta vari-muuttujalle arvo: false (epätosi).
  4. muutoin (jos hiiren koordinaatti on pienempi kuin 300), niin
    aseta vari-muuttujalle arvo: true (tosi).
  5. Jos vari muuttuja saa arvon true (tosi), niin
    aseta taustaväriksi punainen.
  6. Jos vari muuttuja saa arvon false (epätosi), niin
    aseta taustaväriksi vihreä.
  7. Piirrä ikkunan keskelle pystyviiva.

// 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