Jelenlegi hely

4.1.1 Implicit konverzió

Amikor egy aritmetikai operátor egyik operandusa egész, a másik pedig lebegőpontos, akkor az eredmény is lebegőpontos lesz. Az egész érték implicit módon lebegőpontos számmá konvertálódik, mielőtt a művelet végrehajtódna. A következő lista összefoglalja az aritmetikai operátorok értékét az adattípusok függvényében. A szükséges konverziók még a művelet végrehajtása előtt végre fognak hajtódni.

  • long az egyik operandus sem lebegőpontos, és legalább az egyik long
  • int az egyik operandus sem lebegőpontos, és nem long
  • double legalább az egyik operandus double
  • float legalább az egyik operandus float, és a másik nem double

A + és - operátorok unáris (egyoperandusú) operátorokként is használhatók:

  • +op int értékké konvertálja a byte, short és char értéket
  • -op aritmetikai negálás

A ++ operátor növeli az operandus értékét, a -- pedig csökkenti eggyel. Mindkettőt írhatjuk az operandus elé (prefix) és után (postfix) is. A prefix forma esetén először történik az érték növelése vagy csökkentése, majd a kifejezés értéke is a megváltozott érték lesz. A postfix használat esetén fordítva történik a végrehajtás: először értékelődik ki az operandus, majd utána hajtódik végre a ++ vagy -- művelet.

A következő SortDemo program mindkét operátort használja:

public class SortDemo {
    public static void main(String[] args) {
        int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 };
        for (int i = arrayOfInts.length; --i >= 0; ) {
            for (int j = 0; j < i; j++) {
                if (arrayOfInts[j] > arrayOfInts[j+1]) {
                    int temp = arrayOfInts[j];
                    arrayOfInts[j] = arrayOfInts[j+1];
                    arrayOfInts[j+1] = temp;
                 }
             }
         }
         for (int i = 0; i < arrayOfInts.length; i++) {
             System.out.print(arrayOfInts[i] + " ");
         }
         System.out.println();
    }
}

A program a rendezett számsorozatot fogja megjeleníteni.