module inscription newsletter haut de page forum mobile

Rejeter la notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos

Ateliers et Formations

Expression avec une boucle for

Discussion dans 'Adobe After Effects' créé par Robinsstudio, 1 Février 2014.

  1. Robinsstudio

    Points Repaire:
    1 520
    Recos reçues:
    9
    Messages:
    271
    Appréciations:
    +0 / 1 / -0
    Bonjour à tous,
    Tout d'abord ça fait longtemps que je n'ai pas répondu à des sujets car j'avais trouvé les questions de moins en moins pertinentes, et le sentiment de répéter toujours la même chose me fatiguait. Bref ! Je suis de retour avec une expression bien dodue pour vous. :good:

    Mon problème est relativement simple, je veux, à partir d'un nombre n, calculer sa factorielle. Facile me direz-vous, il suffit d'utiliser une boucle for:

    Code:
    n=effect("nombre")(1);
    for (i=1;i<=n;i++){
    n*i
    }
    Sauf que, pas de chance, je n'obtiens pas n! mais n². A mon avis, étant donné que les itérations vont jusqu'à i=n, il n'a compté que la dernière itération et donc j'obtiens bien n² (logique). Alors j'ai essayé tout un tas de trucs qui n'ont pas marché comme :

    Code:
    n=effect("nombre")(1);
    for (i=1;i<=n;i++){
    n=n*i
    }
    Mais là encore, pas de chance, j'obtiens carrément une erreur. Pourtant je crois que c'est possible de redéfinir une variable de cette manière en JavaScript. Bref, ça me fatigue, je voulais savoir si After Effects avait sa propre manière de multiplier mon nombre n par i à chaque itération et de pouvoir récupérer le tout. Ça serait super si quelqu'un le savait ! Merci d'avance pour vos réponses ! :D
     
  2. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    et voilà :

    Code:
    n=effect("nombre")(1);
    j=1;
    for (i=1;i<=n;i++){
    j=j*i
    }
     
  3. Robinsstudio

    Points Repaire:
    1 520
    Recos reçues:
    9
    Messages:
    271
    Appréciations:
    +0 / 1 / -0
    Aaaahhh ! Pas bête j'avoue ! Ça veut dire que j'ai pas le droit de travailler directement avec n dans la boucle ?

    En tout cas merci beaucoup Sequelles ! :bravo:
     
  4. viclio

    Points Repaire:
    1 970
    Recos reçues:
    11
    Messages:
    656
    Appréciations:
    +0 / 4 / -0
    Ah, les boucles... J'avoue que je m'y casse encore pas mal les dents.
    Effectivement, je n'aurais pas pensé à la solution de Sequelles, bien joué !
     
Chargement...

Partager cette page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous