←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zatrzymanie 1 pętli w 2 pętli

Zablokowany

  • +
  • -
sebul - zdjęcie sebul 17.04.2011

Witam. Mam taki kod
new omin[11], aaa, bbb, zmienna[33];
for(new j=0; j<11; j++) {
for(new i=1; i<=32; i++) {
if(!is_user_connected(i)) continue;
if(i == omin[0] || i == omin[1] || i == omin[2] || i == omin[3] || i == omin[4]
|| i == omin[5] || i == omin[6] || i == omin[7] || i == omin[8] || i == omin[9]) continue;

bbb = zmienna[i];
if(aaa < bbb) {
aaa = b_poziom;
omin[j] = i;
}
}
aaa = 0;
if(is_user_connected(omin[j])) {
// jakiś ko
}
}

no i mam takie pytanie, czy da się to zapisać trochę krócej, a dokładniej chodzi o ten kawałek kodu
if(i == omin[0] || i == omin[1] || i == omin[2] || i == omin[3] || i == omin[4]
|| i == omin[5] || i == omin[6] || i == omin[7] || i == omin[8] || i == omin[9]) continue;

pętlą tego nie zrobię, bo to nie zatrzyma całej pętli z "i". Ma ktoś jakiś pomysł?
Odpowiedz

FreZZy - zdjęcie FreZZy 17.04.2011

tak na chama to w ten sposób:


if(i != omin[10]) continue;


ale może trzeba spróbować z goto...
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 17.04.2011

a ten post up to nie wiem skad sie wogole wzial :F
new omin[11], aaa, bbb, zmienna[33],bool:bCon = false;
for(new j=0; j<11; j++) {
        for(new i=1; i<=32; i++) {
                if(!is_user_connected(i)) continue;
		bCon = false;
		for(new j = 0;j<=9;j++){
			if(i == omin[j]){
				bCon = true;
				break;
			}
		}
                if(bCon){ 
		continue;
	      }
                bbb = zmienna[i];
                if(aaa < bbb) {
                        aaa = b_poziom;
                        omin[j] = i;
                }
        }
        aaa = 0;
        if(is_user_connected(omin[j])) {
                // jakiś ko
        }
}
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 17.04.2011

Dzięki, działa, można zamknąć.
Odpowiedz
Zablokowany