Guten Morgen Jungs und Mädels.
Ich hätte mal eine etwas allgemeinere Frage vorallem an die PAWN-Experten unter uns.
Mich würde interessieren ob es ein großartigen unterschied zwischen einem switch und einer if Anweisung?
z.B
Was währe besser?
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)// LS Police spawn
{
SetPlayerToTeamColor(playerid);
GivePlayerWeapons(playerid);
rand = random(sizeof(gCopPlayerSpawns));
SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid,random(360));
SetPlayerInterior(playerid,3);
PlayerInfo[playerid][pInt] = 0;
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
return 1;
}
oder
switch(PlayerInfo[playerid][pMember])
{
case 1:
{
SetPlayerToTeamColor(playerid);
GivePlayerWeapons(playerid);
rand = random(sizeof(gCopPlayerSpawns));
SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid,random(360));
SetPlayerInterior(playerid,3);
PlayerInfo[playerid][pInt] = 0;
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
return 1;
}
default:
{
switch(PlayerInfo[playerid][pLeader])
{
case 1:
{
SetPlayerToTeamColor(playerid);
GivePlayerWeapons(playerid);
rand = random(sizeof(gCopPlayerSpawns));
SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid,random(360));
SetPlayerInterior(playerid,3);
PlayerInfo[playerid][pInt] = 0;
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
return 1;
}
}
}
}
Abgesehen davon das die 2te Methode mehr Zeilen in Anspruch nimmt
Ich habe mir Gedanken gemacht und bin der Auffassung das die 2te Methode mit switch besser währe
den da macht er doch nur 1 Abfrage in dem "PlayerInfo[playerid][pMember]"
und spring dann in den Case
bei dem Beispiel währe natürlich die erste Methode einfacher
aber wenn man es sieht auf 24 Abfragen
if(member == 1 leader == 1 )
...
...
..
if(member == 24 leader == 24)
..
dann ist doch ein switch obtimaler oder nicht?
Ich hoffe ich habe die Frage deutlich und verständlich ausgedrückt .
Und würde mich über zahlreiche Meinungen freuen.
Mit freundlichstem Gruß
GeForce