Jump to content

Podmínka


Petr

Recommended Posts

Podmínka

Obtížnost: award_star_gold_2.pngaward_star_silver_2.pngaward_star_silver_2.pngaward_star_silver_2.pngaward_star_silver_2.png

 

 

 

Obsah

  • Úvod
  • Podmínka "if"
  • Podmínka "switch"

Úvod

Podmínka, jedna z nejdůležitějších částí vašeho módů. Dalo by se říct, že nastavují vlastnosti "oblasti", ve kterém se script nachází. (Nejen) V jazyku Pawn nám k tomu slouží 2 základní typy podmínek: "if" a "switch". Dále sem patří i cykly, ale o těch se dočtete v dalších návodech.

 

 

 

Podmínka "if"

Tato podmínka vychází z matematické logiky. Pokud je výraz v podmínce pravdivý, podmínka povolí akce schované pod podmínkou. V opačném případě se tyto akce nevykonají. Výraz v podmínce může mít mnoho variant, o nich si řekneme později v jiném návodě. V podmínce "if" se můžeme tázat na většinu datových typů, které jazyk Pawn nabízí.

 

Podmínka if vypadá takto:

if(Hodnota1 == Hodnota2)
{
Akce pod podmínkou
}

Kde "Hodnota1" a "Hodnota2" jsou Vaše dosazené hodnoty. Znaků "==" si zatím všímat nemusíte, o tom bude samostatný návod. Tato podmínka vypovídá, že pokud je "Hodnota1" rovna "Hodnota2", podmínka je splněna a tudíž je akce pod podmínkou vykonána.

 

V podmínce "if" můžeme kombinovat i více možností na stejné téma. K tomu nám slouží jakýsi doplněk podmínky "else if" nebo "else". Podmínka "else" nám určuje, že se vykonávají akce, které jsou určené pro případ, že podmínka "if" nebude vyhovovat. Ukáži na příkladu:

if(Hodnota1 == Hodnota2)
{
Funkce1 - Hodnoty jsou shodné
}
else
{
Funkce2 - Hodnoty nejsou shodné
}

 

A mluvil jsem také o podmínce "else if". Ta je podobná podmínce "else", ale má v sobě tu vlastnost, že si v ní můžete nastavovat další požadavky. Ukáži opět na příkladu:

 

if(Hodnota1 == Hodnota2)
{
Funkce1 - Hodnoty jsou shodné
}
else if(Hodnota1 > Hodnota2)
{
Funkce2 - "Hodnota1" je větší než "Hodnota2"
}
else
{
Funkce3 - "Hodnota1" je menší než "Hodnota2" //V tomto případě podmínka "else" bere zbývající oblast, která nebyla zadaná v předchozích podmínkách
}

 

Za "Hodnota1" a "Hodnota2" můžete dosazovat:

  • Matematické hodnoty
  • Proměnné většiny datových typů, které poskytuje jazyk Pawn
  • Return funkcí

A přitom tyto hodnoty můžete mezi sebou různě kombinovat.

 

 

 

Podmínka "switch"

Podmínka "if" má vlastně rozvětvenou svojí odpověď pouze na true (pravda) a false (nepravda) a podle toho pouští/nepouští akce. Podmínka "switch" se v tomto případě liší tím, že má svojí odpověď rozvětvenou přímo na hodnoty, které se jako odpověď požadují. No a k určení každé hodnoty nám dopomáhá "case", bude asi lepší to vysvětlit rovnou na příkladu:

 

switch(HodnotaA)
{
case HodnotaB0:
{
Akce - B0
}
case HodnotaB1:
{
Akce - B1
}
case HodnotaB2:
{
Akce - B2
}
}

 

Můžete pokračovat dál, podle počtu požadovaných hodnot.

 

Speciální větví je tu "default", která tu slouží stejně jako "else" při podmínce "if".

 

switch(HodnotaA)
{
case HodnotaB0:
{
Akce - B0
}
case HodnotaB1:
{
Akce - B1
}
case HodnotaB2:
{
Akce - B2
}
default:
{
Akce - Jakákoli jiná akce
}
}

 

To by bylo asi tak vše k podmínkám.

Děkuji za pozornost.

Připomínky, dotazy, hlášení chyb » Odpověď

  • Líbí se mi to! (+1) 2
Link to comment
Share on other sites

  • 4 weeks later...

Jen bych u elseif dodal, že to ulehčuje zápis z

if(podminka == 1){

  neco1();

}else{

  if(podminka == 2){

    neco2();

  }else{

    if(podminka == 3){

      neco3();

    }else{

      neco4();

    }

  }

}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...