Puissances de 2 java

Bonjour,

j'essaie de faire un programme faisant des puissances de 2,
mais le problème est que pendant l'incrémentation il ne met pas la valeur du résultat à jour pour le multiplier par lui même comme ceci; SOS

public class puissance
{

public static void main (String[] args)

{
int i;
int n = 4;
int base = 2;
int expo = 0;
for (i = 0; i<n; i++)
{

expo = base * base;

System.out.println (expo);}

}
}

5 réponses

  1. Modérateur
    En effet tu ne pars pas dans la bonne direction.

    Réfléchis un peu plus à qu'est-ce qui est variable et qu'est-ce qui est constant.
    En plus de ça ton "indentation" t'induit en erreur en te faisant croire que tout ce que tu modifies est dans ta boucle alors que tu as un } juste après ton premier println et ça change tout (enfin ça resterai faux quand même avec le code dans la boucle)

    Mets toi à la place de l'ordinateur et regarde ce que fais ton code ligne par ligne :

    n=4 
    base=2 
    expo=0 
    i=0 
    
    i<n --> 0<4 --> true 
    expo=base*base --> expo = 2*2 --> expo=4 
    println(expo) --> 4 
    i++ --> i=1 
    
    i<n --> 1<4 --> true 
    expo=base*base --> expo = 2*2 --> expo=4 
    println(expo) --> 4 
    i++ --> i=2 
    
    i<n --> 2<4 --> true 
    expo=base*base --> expo = 2*2 --> expo=4 
    println(expo) --> 4 
    i++ --> i=3 
    
    i<n --> 3<4 --> true 
    expo=base*base --> expo = 2*2 --> expo=4 
    println(expo) --> 4 
    i++ --> i=4 
    
    i<n --> 4<4 --> false 
    
    expo=expo*expo --> expo = 4*4 --> expo=16 
    println(expo) --> 16

    La confiance n'exclut pas le contrôle