Question sur Do --loop Until

Bonsoir j'ai une toute petite question avec le code suivant

Do k = k + 1 Loop Until (4 * k + 1) Mod 1 = 0 MsgBox k

pourquoi la valeur rentournée par k vaut elle 1 , alors que k=0 satisferait a l'egalité (4 * k + 1) Mod 1 = 0 ?

je vois que k=0 n'est pas pris en compte ..!

Merci pour vos avis

Bonsoir,

l'instruction MOD :

divise le premier chiffre par le deuxième et retourne le reste de la division.

K est vide au début du code, puis vaut 1 par K=K+1

le premier chiffre = 4 X K + 1 = 5 => (4 X1) = 4 car multiplication est prioritaire et 4 + 1 = 5

5 MOD 1 => 5 divisé par 1 = 5 reste de la division (MODulo) = 0

la boucle (DO LOOP) s'arrête de tourner si la condition est vrai hors l'opération est bien égale à 0 donc elle s'arrête à la première valeur de K qui est 1

Dans le code à aucun moment K=0 !

@ bientôt

LouReeD

Bonjour, salut loureed,

dit autrement n'importe quel nombre modulo 1 = 0, mais en conclusion c'est que ton test est toujours vrai.

Si c'est pour savoir si pair/impair c'est modulo 2 qu'il faut. Sinon comme on ne sait pas ce que tu veux faire...

Par ailleurs avec en première ligne k = k + 1 explique moi à quel moment tu aurais pu tester avec k=0...

A moins de ne pas nous avoir mis une ligne au-dessus qui aurait été k = -1

eric

Merci Ériiic en fait c est tout bêtement k=-1 qui me manquait avant de lancer la boucle.. Un grand merci à toi

Bonjour, eriiic,

Un grand merci à toi

il en reste un "petit" pour moi ?

@ bientôt

LouReeD

Toi tu as déjà eu la fève, alors ça suffit !

C'est dommage qu'il n'ait lu que la moitié de la réponse...

Bonsoir,

toujours est-il :

@ bientôt

LouReeD

Rechercher des sujets similaires à "question loop until"