switch, int et constantes

Répondre
Partager Rechercher
Condition ? Valeur si condition est vraie : Valeur si condition est fausse;

L'avantage c'est qu'on peut l'utiliser dans une assignation à une variable, et pis c'est plus court. Pis voilà....
Code PHP:

sDial= ( nDial==1)? "Bonjour""Aurevoir"

ça correspond à

Code PHP:


if (nDial==1)
sDial="Bonjour";
else
sDial="Aurevoir"
tiens, tant qu'on est sur des int
g ue petite question t bête, mais qui peut ^tre source de tout foutre en l'air chez moi :

Code PHP:


int i 
10;

i--;

i9

//ou

= 09 
et ds le même style :

Code PHP:

int i 01;
i++;
i???
//ou 
02 ?? 
[ca me sauverais la vie si c t les deuxime valeur, mais j'y crois pas troop ... (oui c des StringToInt ...IntToSTring )
parce que bon, les test sur la longeur ca va bien 5 minutes, mais si y en avait pas besoin ca serait plus simple
sur les nombres, entier ou flotant, les zero devant sont enlevés normalement !
et si tu demande d afficher 05 (le nombre, pas la chaine de caractere), il affichera 5

si tu as besoin d afficher un nombre avec 4 chiffre absolument, 0005 ou 0234 par exemple, tu peu faire comme ca :

Code PHP:

int i XXXX//ton nombre
IntToString (i);
if (
i<10)
"000" ;
else if ( 
i<100)
"00" ;
else if ( 
i<1000)
"0" 
et la ca doit etre bon

PS : c mon premier script , comment on met les balise php pour avoir la joli couleur svp ?
PS2 : c bon, j ai trouvé toute seule , comme une grande
bon, ba merci, je vais tt me relire, si g pas émergé dans deux jours, c que je suis mort, ou que je me suis enfin endormi :lol:
(galère ca ... fin bon, c le métiers qui entre )
plouploum
bon, ba pour me simplifier la vie, g vaguement essayé un truc
je vaisle teste dans un instant mais si vous pouviez me confirmer que ca va pas marcher (en fait, je fais mumuse je m'entraine quoi

Code PHP:

//a appliquer a sNbToNormalize (une string de chiffres), si plus de chiffres que nNorme, alors on enleve les plus à gauche
//si plus cours, on rajoute des 0 devant
string NormalizeNbStrstring sNbToNormalizeint nNorme);

string NormalizeNbStrstring sNbToNormalizeint nNorme)
{
   
string sF;
   
int nTaille=GetStringLength(sNbToNormalize);
   if(
nTaille nNorme)
       {
      
sF GetStringRight(sNbToNormalizenNorme);
      
SendMessageToAllDMs("pb pdt normalization de "+sNbToNormalize+" de "+IntToString(nNorme)+"plus de caracteres que la norme");
       }
   else
      {
      
int nDif nNorme;
      
nDif =- nTaille;
      
sF sNbToNormalize;
      while(
nDif 0)
         {
         
sF "0"+sF;
         
nDif--;
         }
      }

return 
sF;



Citation :
@ Azraël > Même en C, on n'as droit qu'aux char en plus et comme ce sont des entiers déguisés...
Vi, et tu veux y mettre quoi d'autre ?

des string ? ca existe pas en C (sauf par les bibliotèques bien sur)
les float ? oui ca aurais pu, mais c'est telement grotesque que je l'ai pas pris en compte.

Quoi !! de la mauvaise fois ? Meuh non..... ^_^
Les char sont des int, c'est tout ce que je voulais souligner. De plus même si les string n'existent pas, les tableaux si, et les chaînes dans les tableaux aussi donc...

Enfin tu semblais dire que le C acceptait d'autre type que int alors qu'il n'accepte que ça ! (char == unsigned short int)

Par contre ce qui est chiant, c'est qu'on ait pas des fonctions ASCII<---->int, ça permettrait de passer au-dessus de cette limitation !
Citation :
Enfin tu semblais dire que le C acceptait d'autre type que int alors qu'il n'accepte que ça !
disons plutot que je l'ignorais

Pour ce qui est des fonctions de passage int<--->ascii, ben que dire... il est vrai qu'a première vue ce n'est pas fondamental, il n'y a que si on se plonge profondément dans le scripting que ca devient interessant.

Moi de toutes facon je m'en fous du passage décimal <> ascii, il m'ont mis mes opérateurs binaires, je ne peux que ronronner
Question
Je profite de ce post pour poser deux petites questions :

1)
Code PHP:

int i XXXX//ton nombre
IntToString (i);
if (
i<10)
"000" ;
else if ( 
i<100)
"00" ;
else if ( 
i<1000)
"0" 
A quoi servent les else, on peut pas écrire :
Code PHP:

int i XXXX//ton nombre
IntToString (i);
if (
i<10)
"000" ;
if ( 
i<100)
"00" ;
if ( 
i<1000)
"0" 
Sinon pour les if : quelle différence entre ?
if (condition && condition)
et
if (condition & condition)

Voilà c'est tout, bonne journée et merci d'avance !
sans le else, les condition vont etre regardéees une a une, donc

- 9 est inferieur a 10, s = ("000" + i)
puis
- 9 est inferieur a 100, s= "00"+("000" + i)
puis
- 9 est inferieur a 1000, s= "0" + ("00"+("000" + i))


donc, a la fin, tu obtiens pas 000i, mais 000000i
^^
huhuhu, j'avais failli poser la même question
d'ailleur, tu peu aussi mettre la fonction que g donné dans une bibliothèque elle marche bien, perso je m'en sers pas mal passke c bien sciant qd même cette histoire de 0 qui passe a la trappe :O

(non non c pas de la pub, c de l'entraide , ma première fonction )

et pour la deuxieme question .. euh .. g jamais vu avec un seul &, ca fait qq chose
l'explication de eM donne deja un argument, j'en ai un autre :

Code PHP:

int i XXXX//ton nombre
IntToString (i);
if (
i<10)
"000" ;
else if ( 
i<100)
"00" ;
else if ( 
i<1000)
"0" 
la, l'instruction if (i<10) est lancée, puis l'instruction else if ( i<100) n'est testée QUE SI le dernier test est faut.

par contre, la

Code PHP:

int i XXXX//ton nombre
IntToString (i);
if (
i<10)
"000" ;
if ( 
i<100)
"00" ;
if ( 
i<1000)
"0" 
les tests sont tous effectué dans tout les cas.
A ton avis lequel des cas est le plus léget pour les ressources ?


pour la seconde question :

if (condition1 && condition2)
la il faut que les deux conditions soient juste pour être executée

if (condition1 & condition2)
La c'est faut, les info a mettre ne sont pas des conditions, mais des valeurs, puisque le & unique est le & binaire, utilisé pour les opérations binaires (POWAAAAA)

si ca interesse quelqu'un je pourrais faire un tut la dessus a l'occasion, ca peut servir a plein de choses, comme par exemple compresser les donnés qui ne prennent que deux valeurs (TRUE et FALSE)
ce que tu me dis la est étrange. Je n'ai jamais testé les opérations binaires dans le cadre de neverwinter, mais en C je les utilise très souvent.

en général l'opération if( n1 & n2) renvoye une valeur, donc laisse passer la boucle, si on prend n1 = 4, n1 & n2 ne revera 0 que si n2 = 3, car
4 = 100b
3 = 011b
or 100b & 011b = 0b = 0

....
Bon j'écrirais mon tut se sera mieux ^_^ (pi je testerais tout ca sur neverwinter pour voir si ca marche bien O_o

EDIT : oui je viens d'essayer c'est bien ca. Je pense que tu as été victime d'une malheureuse coincidence en trouvant un
if( n1 && n2) avec le meme effet qu'un if( n1 & n2)
Evidemment s'il a utilisé uniquement des tests du genre GetIs0bjectValid() ou "==" ou ">" Ca a marché pour lui vu que tous ces tests renvoient uniquement 0 ou 1 (FALSE et TRUE) donc on a bien :
(FALSE & TRUE) == 0 == FALSE == (FALSE && TRUE)
et (TRUE & TRUE & TRUE) == 1 == TRUE == (TRUE && TRUE && TRUE)

Mais ce n'est pas du tout une bonne habitude de programmation, surtout lorsqu'on commence à utiliser directement des valeurs pour vérifier si elles sont différentes de 0...
Par définition en programmation en c, il faut bien faire une distinction entre :

| et ||
& et &&
= et == (et ===)
etc...

Enfin bon, tu en as pleins, je pourrai si vous voulez tous les mettre mais je ne pense pas que cela vous serve à quelque chose
ça le triple égale est utilisé en php4, donc rien à voir mais bon c'était pour donner toutes les différences qu'on peut avoir dans les opérateurs ,il n'y a pas le triple égale en c .

Mais bon , donc le triple égale va permettre de vérifier l'équivalence du typage des variables C'est à dire qu'il renvoi true si les deux opérandes sont égaux et du même type
Bien je vous crois je prendrai garde à mettre && par sûreté à l'avenir.
Azrael si tu pouvais mettre dans ton tutorial à quoi servent | et || ce serait sympa. C'est difficile d'effectuer des recherches sur des signes qui n'ont pas de nom

Il y a un signe qui signifierait if (condition1 et/ou condition2) est valable {...} ??

Après j'arrête les questions promis
c pas || ou bien g oublié un truc en route

bon, et tant qu'on y est, ouala un joli erreur pour approuver les dire des ce messieurs :

ERREUR : NON INTEGER EXPRESSION WHERE INTEGER REQUIRED

obtenue en essayant de compiler :
Code PHP:

if(GetObjectByTag("truc1") = GetObjectByTag("truc2")) 

donc c bien obligatoirement un 1 ou un 0 qu'il faut là, enfin je pense

(oui g rajouté un = pour compiler le truc ^_^ )
Citation :
Bien je vous crois je prendrai garde à mettre && par sûreté à l'avenir.
Azrael si tu pouvais mettre dans ton tutorial à quoi servent | et || ce serait sympa. C'est difficile d'effectuer des recherches sur des signes qui n'ont pas de nom
Bien en fait, j'ai essayer d'écrire un truc, mais il se trouve que c'est un peu compliqué a expliquer, non pas le principe de base, mais l'application qu'on peut en faire.

Bon ben alors je publie la première partie pour expliquer a quoi ca sert, pour l'applications vous attendrez
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés