logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [javascript] Que signifie les "++" ?
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [javascript] Que signifie les "++" ?  (Lu 5849 fois)
alixking
Profil challenge

Classement : 25489/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 32


Voir le profil
« le: 03 Avril 2006 à 16:14:46 »

Dans le code suivant :

s=0;
var nb=1000;
for(i=1;i<=nb;i++)
{a$=i.toString()
for(j=0;j<a$.length;j++)
{if (a$.charAt(j)=="0") {s++}


Ca veut dire quoi i++, s++ et j++ s'il vous plait ?
Journalisée
Folcan

Profil challenge

Classement : 508/54284

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #1 le: 03 Avril 2006 à 16:23:49 »

Les ++ signifie que il rajoute +1 a la valeur qui existe deja.

Si i est egale a 1 au depart, alors a chaque fois qu'il va rencontrer un i++, il rajoutera 1. Si la boucle fait 1000 tours, alors i a la fin vaudra 1001.


Et a l'avenir, choisi des titres plus claire et representatif de ta question s'il te plait, sinon nous nous verrons dans l'obligation de les supprimer sans meme y repondre.
Merci
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Luther
Profil challenge

Classement : 1880/54284

Membre Junior
**
Hors ligne Hors ligne
Messages: 73


Voir le profil
« #2 le: 03 Avril 2006 à 16:57:58 »

i++ équivalent à i = i + 1
i-- équivalent à i = i - 1
i+=1 équivalent à i = i  + 1

etc..

c'est des raccourcis
Journalisée
Folcan

Profil challenge

Classement : 508/54284

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #3 le: 03 Avril 2006 à 17:02:50 »

----------------------
De Alixking :

Je suis désolé de demander tout le temps de l'aide mais lecode suivant :

for(i=1;i<=nb;i++)


Veut bien dire, pour i=1, et à la fin on rajoute +1 à i mais que veut dire i<=nb ?
----------------------------

Cela signifie : si i est inferieur ou egale a nb.
L'expression complete signifie :


for(i=1;i<=nb;i++)
Pour (avec au debut de la boucle i à 1 ; tant que i est inferieur ou egale a nb ; a chaque tour on rajoute +1 a i) {
On execute le code
}

PS: Revoi tes cours de JavaScript et la notion de boucle...
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
alixking
Profil challenge

Classement : 25489/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 32


Voir le profil
« #4 le: 03 Avril 2006 à 17:08:47 »

Merci
Journalisée
Invit
Invité
« #5 le: 03 Avril 2006 à 17:37:52 »

En fait l'explication du "++" tiens au fait (historique uniquement concernant le javascript ? je sais pas) qu'en C on trouve la même syntaxe

"i++;" incrémente la variable i, tout simplement, comme "i--;" la décrémente

En fait ça a un sens (on pourrait très bien écrire "i += 1;" ça revient au même dans les faits) du fait que le C étant un langage compilé, il est donc transcodé en langage machine (assembleur, c'est kif kif on va dire pour entrer dans les subtilités de langage), et en assembleur, on peut incrémenter une valeur en mémoire de plusieurs façon également

mettons que notre variable, notre valeur en mémoire s'appelle AX, pour l'incrémenter on peut soit écrire en assembleur :

ADD AX, 1

Soit

INC AX

Qui va augmenter la valeur de 1 automatiquement sans qu'on ait besoin de le préciser, c'est implicite

"Oui mais alors, à quoi ça sert de faire la distinction puisque ça revient au même ?"
-> C'est une très bonne question, je vous remercie de me la poser

Tout simplement parceque en assembleur "INC AX" ça correspond à mettons 0x40 en langage machine (hexadécimal), donc 1 seul octet permet de dire au processeur "augmente la valeur de AX de 1"
Tandis que - toujours en assembleur - "ADD AX, 1" correspondra disons à 0x05, 0x01, 00 (le fameux "1" qu'on ajoute, on le retrouve sur le deuxieme octet) donc le processeur aura à traiter 3 octets pour arriver exactement au même résultat.

Bon, 3 octets au lieu d'un c'est pas énorme, d'autant que les processeurs actuels traitent des millions d'instructions à la seconde, mais justement, c'est petites instructions, si elles reviennent souvent, à force de perdre un peu de temps par ci, un peu de temps par là, on se retrouve avec un programme qui est globalement lent (dans une certaine mesure, c'est une caricature, c'etait valable surtout autrefois à l'époque du crétacé et des 486, puis est arrivé Pentium et là, ce fut le drame, bref...)

En résumé, quand vous employez "++" pour incrementer votre code, c'est le premier pas vers son optimisation (sur un plan rapidité d'exécution)
On peut également comprendre pourquoi on dit souvent que le C est un langage proche de la machine, typiquement parceque les instructions dans le code source en C on une influence directe sur le code machine et qu'on en a une maitrise assez fine si on sait utiliser C

Voilou
Journalisée
Folcan

Profil challenge

Classement : 508/54284

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #6 le: 03 Avril 2006 à 17:50:07 »

C'est un grand malade...

Tu lui demande "pourquoi i++"
Et il te sort un cours d'assembleur, ainsi que l'historique de 1952 à aujourd'hui, en passant par les bases du language C, les mathematiques, etc...

Un grand malade...

Merci
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
CommComm

Profil challenge

Classement : 86/54284

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1283


Voir le profil
« #7 le: 03 Avril 2006 à 19:05:24 »

Bon d'accord  mais pourquoi i justement ?
Moi je sais nananère...
Journalisée

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(Devise d'un newbie shadok)
Folcan

Profil challenge

Classement : 508/54284

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #8 le: 03 Avril 2006 à 20:03:30 »

Ouai c'est vrai pourquoi dans tous les exemples/cours, on a choisi "i" ??
Encore "a", on pourrait se dire, premiere lettre de l'alphabet !

ROT9 ??? yééhaaa

ou "i" comme "incremente" ou comme "integer" ??
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Pages: [1]
  Imprimer  
 
Aller à: