[ miljannet @ 11.03.2014. 20:39 ] @
Radim zadatak sa upotrebom break naredbe. Sve mi je jasno u zadatku evo ga kod:
Code:


public class Break 
{
    public static void main(String args[])
    {
        boolean t=true;
        
        prvi:{
            drugi:{
                terci:{
            System.out.println("Pre naredbe break.");
            if(t) break drugi; // program se nastavlja iza bloka drugi
            System.out.println("Ovo se nece izvrsiti");
                }
            System.out.println("Ovo se nece izvrsiti");
            }
        System.out.println("Ovo je iza bloka drugi.");
        }
    }
}



ovaj deo mi nije jasan.

Code:

prvi:{
            drugi:{
                terci:{


Sta to treba da prestavlja ? Msm znam za sta to sluzi u ovom zadatku, ali se prvi put srecem sa tim i nije mi jasno.. Ja sam taj isti zadatak uradio samo sa for petljama.

Code:


public class BreakSaFor 
{
    public static void main(String args[])
    {
        for(int prvi=0;prvi<2;prvi++)
        {
            for(int drugi=0;drugi<2;drugi++)
            {
                for(int treci=0;treci<2;treci++)
                {
                    System.out.println("Pre naredbe break");
                    break;
                }
                break;
                // System.out.println("Ovo je iza bloka prvi"); nece se izvrsiti
            }
            System.out.println("Ovo je iza bloka drugi");
            break;
        }
    }
}


Ja sam ovaj prvi primer uradio sa for petljama tako da mi ovaj deo prvi: {, drugi:{ i treci: { prestavljaju petlje.
[ Andrej013 @ 11.03.2014. 23:58 ] @
U programiranju mnoge stvari mozes da uradis na vise nacina, tako si ti uspeo da dobijes isti rezultat(iako je procesi dolazenja do rezultata bitno razlikuju) koristeci for petlje. U ovom zadatku je izlaz nebitan, vec je bitna poenta. isti zadatak si mogao da napises i ovako:
Code:

public static void main(String args[]){
    System.out.println("Pre naredbe break.");
    System.out.println("Ovo je iza bloka drugi.");
}

:D

salu na stranu. Dakle, kako si rekao:
Citat:
miljannet

ovaj deo mi nije jasan.

Code:

prvi:{
    drugi:{
        terci:{


Sta to treba da prestavlja ? Msm znam za sta to sluzi u ovom zadatku, ali se prvi put srecem sa tim i nije mi jasno.. Ja sam taj isti zadatak uradio samo sa for petljama.

To su labele. Rezervisana rec break moze da se koristi sa labelom ili bez nje.
Kada je koristis sa labelom, kada se ispuni zadati uslov, dolazi do skoka i pogram nastavlja da se izvrsava na kraju bloka koji labela pokazuje.

Mnogo korisniji primer je kada imas dve ugnjezdene petlje i u unutrasnjoj petlji se desi nesto zbog cega bi ti zeleo da prekines obe petlje.
jednostavan primer:
Code:

start:
for(int i=0;i<10;i++){
    for(int j=0;j<10;j++){
        System.out.println("radi nesto sa varijablama i: "+i+" j: "+j);
        if(i>5){
            break start;
        }
    }
}
U ovom slucaju, uslov je da brojac "i" ne sme da predje vise od 5 i cim se taj uslov ispuni, program izlazi iz spoljasnje petlje.
Kada bi umesto break start; imao samo break; program bi izasao iz unutrasnje petlje ali bi nastavio da izvrsava spoljasnju iz koje bi se opet uslo u unutrasnju.
Uostalom, kopiraj ovo u eclipse i isprobaj na brzinu.
To je ono kako ja koristim labele. Bas me zanima kako ih ostali koriste.
[ miljannet @ 12.03.2014. 20:57 ] @
Da razumem sada sta je to, nego se nisam susretao jos sa tim, pa sam pitao. :) Hvala.
[ Rapaic Rajko @ 12.03.2014. 21:21 ] @
Citat:
To je ono kako ja koristim labele. Bas me zanima kako ih ostali koriste.


Nikako .

Miljane, labele i struktuirano programiranje su antagonizam; upotreba labela ukazuje na los algoritam i/ili neutreniranog programera. Nisam jos naisao na primer labela koji se nije mogao preraditi da radi bez njih. ("Spageti" kod - to je krajnja posledica upotreba labela)

Za kraj, savet: preskoci lekciju o labelama.

Pozz

P.S. Meni (kao starom pascal vuku) smeta cak i vise od jednog return-a u telu metode/funkcije; jer i return je jedan vid "bezuslovnog skoka". Ali dobro, ne preterujmo sad .
[ jablan @ 12.03.2014. 22:42 ] @
Citat:
Rapaic Rajko: Za kraj, savet: preskoci lekciju o labelama.

Ovo je jedan od najboljih saveta koji si mogao da dobiješ.

Dakle, jedna od najvažnijih stvari za učenje bilo čega, ne samo programiranja, je sposobnost razlikovanja bitnog od nebitnog. I ne samo pri učenju, već i kasnije, u radu, ta sposobnost je neprocenjiva, kod odlučivanja koje funkcionalnosti saseći, kod procene i planiranja vremena itd.

Vreme koje provodiš učeći labele (koje defakto niko ne koristi) možeš mnogo pametnije iskoristiti učeći bitnije stvari, ili na kraju krajeva, programirajući nešto za svoju dušu.

Ja veliku krivicu za taj problem (u kome svakako nisi usamljen) pripisujem autorima knjiga i udžbenika koji po pravilu, želeći da pokriju "što bolje" neku materiju, pišu stotine i stotine stranica ničega. Drugim rečima, nađi bolju knjigu. ;)
[ miljannet @ 13.03.2014. 10:06 ] @
To sam i mislio da ih ne ucim posto ih do sada jos nisam ni koristio, a taj isti program sam mogao da uradim i bez njih, tacnije smetali su mi i zbunjivali me. Hvala ljudi. :)