Házi feladat

 

Alapfejezet - Az értékadás-értékhozzárendelés operátorai

 

Az a += b művelet felhasználásával és csakis a fejezetben leírtak szerint adjuk össze a következőt: 1 + 2 + 3 + 4 + 5! A kód kissé döcögős lesz, de most építkezzünk abból, ami rendelkezésünkre áll.

 

Egyik teljesen kezdő tanítványom a következő megoldást adta:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;

    int c = 3;

    int d = 4;

    int e = 5;
    System.out.println(a += b + c + d + e);
    }
}

 

Végeredmény:

15

 

A megoldás természetesen jó, hiszen szerepel benne az a += b művelet és korrekt a végeredmény. Kezdőszinten ez elég is, de ki kell jelentenünk, hogy a kód nem optimális, ezért tovább kell optimalizálnunk. Legelőször el kell tüntetnünk a sok változódeklarálást, mert a program terjedelméhez képest sok memóriahelyet foglal:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    System.out.println(a += b);
    b = 3;
    System.out.println(a += b);
    b = 4;
    System.out.println(a += b);
    b = 5;
    System.out.println(a += b);
    }
}

 

Végeredmény:

3

6

10

15

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 2;
    a += b;
    b = 3;
    a += b;
    b = 4;
    a += b;
    b = 5;
    System.out.println(a += b);
    }
}

 

Végeredmény:

15

 

For ciklus bevetésével a kód jóval letisztultabbá válik:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    for(int b = 2; b <= 5; b++) {
        a += b;
        System.out.println(a);
        }
    }
}
 

Végeredmény:

3

6

10

15

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    for(int b = 2; b <= 5; b++) {
        a += b;
        }

     System.out.println(a);
    }
}
 

Végeredmény:

15

 

Egy internetes olvasó a következő megjegyzéseket és kódmegoldást küldte nekem:

 

Szó szerint vettem, hogy az a+=b műveletet használjuk és hogy csakis a fejezetben leírtak szerint csináljam, ezért például a for ciklus eszembe sem jutott, hiszen előtte érintőlegesen volt csak szó róla. Az én megoldásom:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {
public static void main(String[] args) {
    int a = 1;
    int b = 1;
    System.out.println(a+(a+=b)+(a+=b)+(a+=b)+(a+=b));
    }
}
 

Végeredmény:

15


Megjegyzem, először elszúrtam, mert a legelső "a+"-t a végére tettem és természetesen nem jött ki az eredmény, de rávilágított a sorrend fontosságára.