tifyty

pure Java, what else ?

Break ciklus nélkül?

Ez egy rövid blog bejegyzés!

package wierdo;

public class Wierdo {
	public static void main(String[] args) {
		label: {
			if (args.length == 0)
				break label;
			System.out.println("We happy, have argument!");
		}
		System.out.println("Hello Wierdo!");
	}
}

No?

11 responses to “Break ciklus nélkül?

  1. Bence február 13, 2013 1:19 du.

    Oh no!

    Sajnos el tudom képzelni, hogy van, aki ezt aktívan alkalmazza is…

  2. ern0 február 13, 2013 1:33 du.

    Bonyolult feltételeknél használok ilyesmit, de csak 1 szintűt. Pl. egy ilyen if arra, hogy tetszik-e egy okostelefon (pseudo code, és nem biztos, h tökéletes):

    bool megvennem = false;
    do {
    if (win6) break;
    if (win7) break;
    if (win8) {
    if (ar <= 5000 Ft) megvennem = true;
    break;
    }
    if (apple) {
    if (os 10000) break;
    }
    if (!android) {
    print(“erre nem vagyok felkeszulve”);
    break;
    }
    if (ar > 40000) break;
    if (mem < 512) break;
    if (speed 30000) break;
    if (ver < 2.2) break;
    megvennem = true;
    } while (false);
    print("megvennem-e: " + megvennem);

    Ugye, ha ezt logikai operátorokkal szeretném leírni, beleőszülnék, plusz tutira elhibáznám.

    Másik hasonló téma a

    int result;
    if (valami) {
    result = 18;
    } else {
    result = 34;
    }

    …helyett…

    int result = 34
    if (valami) result = 18;

    6 sor helyett 2, és talán még picurit gyorsabb is (ARM-ra gondolok), de az már mellékes, főleg JAVA esetében.

    • tvik február 13, 2013 2:53 du.

      result = valami ? 18 : 34;

    • Bence február 15, 2013 6:28 du.

      a telefonválogatósnak query szaga van:

      SELECT * FROM phones WHERE os=’WIN8′ AND price<5000 OR os='Android' AND price512 AND speed>30000 AND osver>2.2;

      tetszőleges DSL -ben kifejezve.

      az ilyen if-kupacokból mindig csak baj lesz.

      BTW, ha mindenképpen kódban szeretnél ilyet elkövetni, akkor:

      boolean wouldBuyIt = ((isSuitableWinPhone(phone)) || (isSuitableApplePhone(phone)) || (isSuitableAndroidPhone(phone)));

      // tovább is van, mondjam még? 🙂

      Aztán majd ki lehet kötni mégis valamilyen query mellett, amikor a 322. új platform miatt kell ismételten belenyúlni a kódba, hogy a feltételhez hozzá lehessen adni.

  3. ern0 február 13, 2013 1:33 du.

    indenting elmaradása nem az hibám

  4. mean február 13, 2013 1:42 du.

    Nem a break-kel van a baj, hanem azzal, hogy ebben a kódban a használata üres argumentum lista esetén végtelen ciklust eredményez. Bár a mai gépeken ez elég gyorsan le fog futni. 🙂

    • mean február 13, 2013 1:49 du.

      Butaságot írtam, de legalább gyorsan. A cimkével ellátott blokk végére ugrik. Hát látszik, hogy nem használtam még ilyen formában.

  5. Botond február 14, 2013 12:22 de.

    Most mit mondjak.. az utóbbi időkben “komoly” rendszerek kódjában láttam olyan for-if-eket, hogy csoda. Mármint for i=1-től 10-ig és belül if (i == 1) {..} else if (i == 2) {..} ..

    Egyszerűen nem akartam elhinni! No de láttam ennek a továbbfejlesztettett változatát is, a for-switch-et, aminek feldolgozását mindenkinek meghagynám otthonra. Ezen a ponton még az is gyenge kifogás, hogy még javában tanulta csak a nyelvet illetve a programozás alapjait versenyzőnk.. Kezd értelmet nyerni a “coding monkey” kifejezés 🙂 és olykor igen vonzó a kecskepásztori karrier Nepálban..

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: