hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 14:54



Jelenlévő felhasználók

Jelenleg 317 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 316 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Feltételek, kondíciók
HozzászólásElküldve: 2013.06.25. 09:54 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
A feltételek (conditionals) használatával végrehajthatsz kódrészleteket, bizonyos feltételek mellett.

Az if feltétel

Az egyik legfontosabb feltétel, az úgynevezett "ha...akkor" feltétel(if...then).
Működése azon alapszik, hogy kiértékeli a megadott kifejezést és eldönti, hogy az igaz, vagy hamis (true, false). Ha a kifejezés igaz, végrehajtja az adott kódot, ellenkező esetben továbblép.
Itt egy egyszerű példa az if feltétel szemléltetéséhez.
A kódrészlet ellenőrzi, hogy az "a" változó értéke egyenlő-e 10-zel. Amennyiben igen, beállítja az értékét 15-re.
Kód:
if (a == 10)
{
   a = 15
}

Jogosan kérdezhetitek, hogy mi van akkor, ha nem 10? A fenti esetben semmi nem történik, egyszerűen továbblép, de arra is van megoldás, hogy hogyan lehet ezt mégis kezelni.
Az alábbi példa ellenőrzi, hogy az "a" változó értéke egyenlő-e 10-zel, ha igen beállítja azt 15-re, de ha nem, akkor beállítja 20-ra.
Kód:
if (a == 10)
{
   a = 15
}
else
{
   a = 20
}

Az if feltétel felépítése roppantul egyszerű:

Kód:
if ( kifejezés ) { végrehajtandó kód }


A kifejezés helyére rengeteg operátort használhatsz, mitöbb, minden olyan kifejezést, melynek értéke végül igaz vagy hamis (true, false) értéket vesz fel.
Néhány példa, hogy miket lehet használni.
Kód:
if (a != 10) {} //ha "a" nem egyenlő 10-zel
if (a <  10) {} //ha "a" kisebb mint 10
if (a > 10) {}  //ha "a" nagyobb mint 10
if (a >= 10) {} //ha "a" nagyobb vagy egyenlő mint 10
if (a <= 10) {} //ha "a" kisebb vagy egyenlő mint 10
if (10+10) {}   //igazat fog visszaadni, tehát lefuttatja a kódot, mivel a 20 az igaz érték [i](true)[/i]
if (a && b) {}  //ha "a" és "b" is igaz
if ( ((5*5)/2) > c) {} //ha "c" kisebb mint 12.5
if (true) {}  //minden esetben lefut, nincs kivétel
if (false) {} //semmiképp sem fut le

Bővebb infó az operátorokról és kifejezésekről Metal tutorialjában.
AmxModX Alapozó 05. - Kifejezések, operátorok

Figyelem, a tömböket az if feltétel segítségével nem szabad így összehasonlítani:
Kód:
new tomb1[3]
new tomb2[3]
if (tomb1 == tomb2) {}

Ez helytelen!

Helyette egyesével kell összehasonlítani:
Kód:
if ((tomb1[0] == tomb2[0]) && 
    ( tomb1[1] ==  tomb2[1]) &&
    ( tomb1[2] ==  tomb2[2])) {}

Természetesen ezt egyesével végrehajtani egy nagyobb tömbön, vagy akár többdimenziós tömbön nem egy leányálom, erre majd a későbbiekben más tutorialban kitérünk.

Az if...else feltételt még magasabb szintre lehet emelni az else if[i] használatával.
Itt egy példa az [i]else if
használatára:

Kód:
if (a == 10)
{
   //Lefut, ha "a" egyenlő 10-zel.
}
else if (a < 10)
{
   //Lefut, ha "a" kisebb mint 10.
}
else if (a == 11)
{
   //Lefut, ha "a" egyenlő 11-gyel.
}
else
{
   //Lefut, ha a fentiek egyike sem teljesül, jelen esetben a 11-nél nagyobb érték esetén.
}


Fontos megjegyezni, hogy ha egy ilyen feltételben az egyik ág teljesül, az egész feltételből kilép és a másik ágat már nem fugja lefuttatni.

A switch feltétel

Egy példa a switch feltételre:
Kód:
switch (a)
{
    case 10:
    {
       //Lefut, ha "a" egyenlő 10-zel.
    }
    case 15:
    {
       //Lefut, ha "a" egyenlő 15-tel.
    }
    case 20:
    {
       //Lefut, ha "a" egyenlő 20-al.
    }
    default:
    {
       //Lefut, ha a fentiek egyike sem teljesül, jelen esetben nem 10, nem 15 és nem 20 az "a" értéke.
    }
}


Példa több feltétel megadására:

Kód:
switch (a)
{
    case 1, 2, 3:
    {
       //Lefut, ha "a" értéke 1 vagy 2 vagy 3.
    }
    case 4, 5, 6:
    {
       //Lefut, ha "a" értéke 4 vagy 5 vagy 6.
    }
    case 7, 8, 9:
    {
      //Lefut, ha "a" értéke 7 vagy 8 vagy 9.
    }
    default:
    {
       //Lefut, ha a fentiek egyike sem teljesül tehát nem 1,2,3,4,5,6,7,8,9.
    }
}


A switch segítségével akár intervallumokat is megadhatsz:

Kód:
switch (a)
{
    case 0 .. 50:
    {
       //Lefut, ha  0 <= a <= 50
    }
    case 51 .. 100:
    {
       //Lefut, ha 51 <= a <= 100
    }
 
    case 101 .. 200:
    {
      //Lefut, ha 101 <= a <= 200
    }
    default:
    {
       //Lefut, ha a fentiek egyike sem teljesül...
    }
}


Az if feltételhez hasonlóan, ha az egyik ág teljesül, a többi már nem fog.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole