Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

10.9.3 Lisäysoperaattori ++

Erittäin tyypillisiä C- operaattoreita ovat ++ ja - - .

Nämä operaattorit lisäävät tai vähentävät operandin arvoa yhdellä. Operandin tyypin tulee olla numeerinen tai osoitin.

Operandeista on kaksi eri versiota: esilisäys ja jälkilisäys.

lyhenne
vastaa lauseita
a = i++;
a = i--
a = ++i;
a = --i;
a = i; i = i+1;
a = i; i = i-1;
i = i+1; a = i;
i = i-1; a = i;

Vaikka C- hakkerit rakentavatkin mitä ihmeellisimpiä kokonaisuuksia ++ - operaattorin avulla, kannattaa operaattorin liikaa käyttöä välttää. Esimerkiksi lauseet joissa esiintyy samalla kertaa useampia lisäyksiä samalle muuttujalle, saattavat olla jopa määrittelemättömiä:

java-silm\Plusplus.java - esimerkki ei-yksikäsitteisestä ++ operaattorin käytöstä

	/**
	 * Esimerkki epäselvästä ++-operaattorin käytöstä
	 * @author Vesa Lappalainen
	 * @version 1.0, 16.02.2003
	 */
	public class Plusplus {
	
	  public static void main(String[] args)  {
	    double i=1.0,a;
	    a = i++/i++;
	    System.out.println("(a = " + a + ", i = " + i);
	  }
	}

Ohjelma saattaa Java- kääntäjän toteutuksesta riippuen tulostaa mitä tahansa seuraavista a:n ja i:in kombinaatioista:

	a: 0.5 1.0 2.0
	i: 2.0 3.0

Aluksi ++ - operaattoria kannattaa ehkä käyttää vain yksinäisenä lauseena lisäämään (tai vähentämään) muuttujan arvoa.

	i++;

Lisäysoperaattoria EI PIDÄ käyttää jos muuttuja johon lisäysoperaattori kohdistuu, esiintyy samassa lausekkeessa useammin kuin kerran.

Kiellettyjä on siis esimerkiksi:

	a = ++i + i*i;
	ali(i++,i); 


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys