Petr 44 Odesláno: 12. Listopad, 2011 Share Odesláno: 12. Listopad, 2011 Podmínka Obtížnost: 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ěď 2 Link to comment Share on other sites More sharing options...
VoDnIk168 0 Odesláno: 12. Listopad, 2011 Share Odesláno: 12. Listopad, 2011 dobrý tut Link to comment Share on other sites More sharing options...
MajkX 16 Odesláno: 12. Listopad, 2011 Share Odesláno: 12. Listopad, 2011 Pekne vysvetlene a nielen prakticky ,ale aj teoreticky..Chvalim 10/10 Link to comment Share on other sites More sharing options...
FiZZy 12 Odesláno: 12. Listopad, 2011 Share Odesláno: 12. Listopad, 2011 Nice, už chápu využití elseif Link to comment Share on other sites More sharing options...
mimic 27 Odesláno: 13. Listopad, 2011 Share Odesláno: 13. Listopad, 2011 nechybí ti náhodou ve switch "break;" za každým "case" ? Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 13. Listopad, 2011 Author Share Odesláno: 13. Listopad, 2011 nechybí ti náhodou ve switch "break;" za každým "case" ? Pawn není PHP Link to comment Share on other sites More sharing options...
mimic 27 Odesláno: 13. Listopad, 2011 Share Odesláno: 13. Listopad, 2011 noo tak dobře, já jen ze v každým jazyku se ukončuje case blok přes break, pawn je zřejmě vyjímka koukam Link to comment Share on other sites More sharing options...
RejW 0 Odesláno: 12. Prosinec, 2011 Share Odesláno: 12. Prosinec, 2011 Konečně už tomu lépe rozumím Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 12. Prosinec, 2011 Share Odesláno: 12. Prosinec, 2011 já používám if, ne switch, ale dobrý Link to comment Share on other sites More sharing options...
G4NG 1 Odesláno: 12. Prosinec, 2011 Share Odesláno: 12. Prosinec, 2011 pekne len si roztahol forum Link to comment Share on other sites More sharing options...
Guest Odesláno: 12. Prosinec, 2011 Share Odesláno: 12. Prosinec, 2011 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 More sharing options...
KarTooN 1 Odesláno: 12. Prosinec, 2011 Share Odesláno: 12. Prosinec, 2011 to máš pravdu, ale na přehlednost je i na tom, jak to děláš... někdo se v tom vyzná někdo ne a někdo to umí udělat, že se v tom vyznají všichni Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now