• 29 Juin 2025, 23:41:42


Auteur Sujet: Quel est la meilleur syntaxe ?  (Lu 879 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Quel est la meilleur syntaxe ?
« le: 21 Janvier 2011, 20:00:39 »
Bonjour,
Je suis en train de refaire mes commandes et je me demandais quel était la meilleur syntaxe entre (par exemple) :
<?php
COMMAND
:donnerc4(playeridparams[])
{
if(IsSpawned[playerid] == 1
{
new giveplayerid;
if (!sscanf(params"u"giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(giveplayerid != playerid)
{
if(HasC4[playerid] == 1
{
                                                
PROCESSUS COMMANDE
}
else SendClientMessage(playerid,COLOR_ERROR,"Vous n'avez pas de C4");
}
else SendClientMessage(playeridCOLOR_ERROR"Vous ne pouvez pas utiliser cette commande sur vous-même");
}
else SendClientMessage(playeridCOLOR_ERROR"Ce joueur n'est pas connecté");
}
else SendClientMessage(playeridCOLOR_ERROR"Utilisation: /donnerc4 [ID ou pseudo]");
}
else SendClientMessage(playeridCOLOR_ERROR"Vous êtes mort. Vous ne pouvez pas utiliser cette commande");
return 1;
}
et entre :
<?php
COMMAND
:donnerc4(playeridparams[])
{
if(IsSpawned[playerid] == 0
{
                
SendClientMessage(playeridCOLOR_ERROR"Vous êtes mort. Vous ne pouvez pas utiliser cette commande");
                return 
1;
         }
new giveplayerid;
if (sscanf(params"u"giveplayerid))
{
               
SendClientMessage(playeridCOLOR_ERROR"Utilisation: /donnerc4 [ID ou pseudo]");
               return 
1;
         }
if(giveplayerid == INVALID_PLAYER_ID)
{
               
SendClientMessage(playeridCOLOR_ERROR"Ce joueur n'est pas connecté");
               return 
1;
         }
if(giveplayerid == playerid)
{
                
SendClientMessage(playeridCOLOR_ERROR"Vous ne pouvez pas utiliser cette commande sur vous-même");
                return 
1;
         }
if(HasC4[playerid] == 0
{
                
SendClientMessage(playerid,COLOR_ERROR,"Vous n'avez pas de C4");
                return 
1;
         }
PROCESSUS COMMANDE
return 1;
}

Il y a une différence (en terme de rapidité par exemple) ou c'est exactement la même chose écrit différemment ?
« Modifié: 21 Janvier 2011, 20:04:42 par Winklevows »

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : Quel est la meilleur syntaxe ?
« Réponse #1 le: 21 Janvier 2011, 20:20:24 »
Salut,
Je pense que les deux sont correctes et aussi efficaces. (Plus que strtok en tout cas  :ninja)
Par contre, au niveau de la présentation, la 2 me semble plus claire à lire même si il est plus probable de commettre des étourderies (Certains préfèreront la 1 à condition que l'indentation soit parfaite). Enfin, c'est variable suivant les gens  ;)
PS : Petit conseil, tu peux remplacer "COMMAND" par "CMD" si tu es un gros fainéant comme moi :)
++

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Quel est la meilleur syntaxe ?
« Réponse #2 le: 21 Janvier 2011, 20:57:44 »
Merci de ta réponse,
Enfaite moi je trouve la première plus simple car j'ai appris à codé comme sa à l'école mais s'est vrais que la 2eme est plus "claire" et peut être plus rapide mais pourquoi on met des "return 1;" partout ? C'est pour dire qu'on arrête l'exécution de la commande a se niveau ?

Et pourquoi ne pas utiliser "else if" comme cela :
<?php
COMMAND
:donnerc4(playeridparams[])
{
if(IsSpawned[playerid] == 0
{
                
SendClientMessage(playeridCOLOR_ERROR"Vous êtes mort. Vous ne pouvez pas utiliser cette commande");
                return 
1;
         }
new giveplayerid;
/*ICI=>*/else if (sscanf(params"u"giveplayerid))
{
               
SendClientMessage(playeridCOLOR_ERROR"Utilisation: /donnerc4 [ID ou pseudo]");
               return 
1;
         }
/*ICI=>*/else if(giveplayerid == INVALID_PLAYER_ID)
{
               
SendClientMessage(playeridCOLOR_ERROR"Ce joueur n'est pas connecté");
               return 
1;
         }
/*ICI=>*/else if(giveplayerid == playerid)
{
                
SendClientMessage(playeridCOLOR_ERROR"Vous ne pouvez pas utiliser cette commande sur vous-même");
                return 
1;
         }
/*ICI=>*/else if(HasC4[playerid] == 0
{
                
SendClientMessage(playerid,COLOR_ERROR,"Vous n'avez pas de C4");
                return 
1;
         }
PROCESSUS COMMANDE
return 1;
}
?
« Modifié: 21 Janvier 2011, 21:01:37 par Winklevows »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Quel est la meilleur syntaxe ?
« Réponse #3 le: 21 Janvier 2011, 21:25:38 »
L'instruction return permet de quitter une fonction en retournant une valeur pour indiquer l'état de celle ci par exemple, ou pour retourner une valeur bien précise.

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Quel est la meilleur syntaxe ?
« Réponse #4 le: 21 Janvier 2011, 21:30:13 »
Salut,

pour être franc, la première méthode est meilleure.
Un des critères de la programmation structuré, c'est que chaque fonction à une entrée et une sortie.
Bref, un seul return, pas des dizaines un peu partout dans la fonction.

++Sim++