Offline |
 |
 |
Csatlakozott:2012.10.09. 13:48 Hozzászólások:1439 Megköszönték neki: 174 alkalommal
|
MASKED írta: aarpi. írta: exodus írta: Azért írja ki 5x mert mind az 5 tömb értéke nagyobb mint 100 Nem vágod mit szeretnék vagy én írtam le szarul. Leírom még1x:c Ha az 5tömb értéke meg van több mint száz akkor chatre kiírja: Kód: 1 2 3 4 5 De ha nincs meg akkor: Kód: Sikertelen Sikertelen Sikertelen Sikertelen Sikertelen És én ezzel azt szeretném, hogy ha nincs meg azaz értek a sikertelent ne írja ki ennyiszer hanem csak 1x. Hátha megfelelő neked. new szamlalo=0; for(new i;i < 5; i++) { if(g_valami[i][id] > 100) { ColorChat(0, GREEN, "%d", i) // tehát ezt itt 5x ki fogja írni a chatre } else { szamlalo++; } } if(szamlalo>0) { ColorChat(0, GREEN, "Sikertelen %d alkalommal", szamlalo) // Így csak egyszer írja ki a for ciklus lefutása után és azt is mutatja, hogy hányszor sikertelen }
Nem fogja 5x kiírni chatre, ha kisebb, mint 100. Ha 2 elem kisebb, akkor csak háromszor fogja. Végülis igen, használhatod a megszámlálást. De akkor a ciklusban a feltételt módosíthatod és még tovább rövidíthetsz a kódon, elhagyva az else ágat. Lásd az alábbi plugint. Azonban ez csak egy előfeltételre igaz. public teszt() { new n[10] = {101, 74, 133, 63, 221, 100, 101, 102, 103, 104}; new szamlalo=0; for(new i;i < 10; i++) { if (n[i] < 100) { // Előfeltétel szamlalo++; log_amx("a, i: %d", i); continue; } log_amx("b, i: %d", i); } if(szamlalo>0) { log_amx("szamlalo: %d", szamlalo); } }
Eredmény:  [teszt.amxx] b, i: 0 [teszt.amxx] a, i: 1 [teszt.amxx] b, i: 2 [teszt.amxx] a, i: 3 [teszt.amxx] b, i: 4 [teszt.amxx] b, i: 5 [teszt.amxx] b, i: 6 [teszt.amxx] b, i: 7 [teszt.amxx] b, i: 8 [teszt.amxx] b, i: 9 [teszt.amxx] szamlalo: 2 A kód tehát így rövidülne: new szamlalo = 0; for(new i;i < 5; i++) { if(g_valami[i][id] < 100) { // Ha a valami eleme < 100 szamlalo++ continue; // Következő elemre ugrunk, nem fut tovább a ciklus } // Ha öbb feltétel nincs, nem szükséges else ág, a continue; utasítás miatt a ciklus nem fut tovább így nincs mit tovább ellenőrizni és a következő elemre ugrik. Tehát jöhet a kód további része. ColorChat(0, GREEN, "%d", i) } if(szamlalo > 0) { ColorChat(0, GREEN, "Sikertelen %d alkalommal", szamlalo) // Így csak egyszer írja ki a for ciklus lefutása után és azt is mutatja, hogy hányszor sikertelen }
_________________ Minden jót! :)
Ők köszönték meg BeepBeep nek ezt a hozzászólást (összesen 2):Heist (2018.11.02. 10:17) • aarpi. (2018.11.02. 11:11) |
|
|