I cannot be resolved

cs_domxaline Messages postés 327 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 10 mai 2012 - 10 juil. 2009 à 12:23
cs_domxaline Messages postés 327 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 10 mai 2012 - 10 juil. 2009 à 13:57
bonjour
public class essaie
{
  public static void main (String [] args)
  { 
      for(int i =0; i <= 10; i++)
       if (i%2==1)
       {
       continue;
       }
        System.out.println("carré de " + i + " = " + (i *i));  
   }
 }


en executant ce prg j'ai un message i cannot be resolved
veuille m'aidez s'il vous plaît
A voir également:

4 réponses

Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 3
10 juil. 2009 à 13:47
Bonjour,

Effectivement ton code contient une erreur.
Ta variable 'i' est en effet définie uniquement dans le bloc de la boucle 'for'.
Le bloc de la boucle 'for' est uniquement la partie suivante de ton code :
      for(int i = 0; i <= 10; i++)
       if (i%2==1)
       {
       continue;
       }

Le problème, qui te provoque l'erreur de compilation, est que tu l'appelles à l'extérieur de ce bloc (dans le 'System.out.println...').

Autre remarque : il y a très certainement un problème algorithmique dans ton code actuel.
En effet tel quel : ta boucle 'for' va parcourir forcément tous les 'i', le 'if' ne sert à rien car si 'i' est impair, la boucle 'continue;' et si 'i' est pair, elle continue aussi.
De plus, le résultat de ton programme actuel est qu'il va uniquement afficher "carré de 11 = 121".

Conseil : Si tu veux pouvoir visualiser plus facilement le bloc d'une boucle 'for', ajoute des accolades pour pouvoir le délimiter visuellement, comme ceci :
      for(int i =0; i <= 10; i++)

      {
         if(i%2 ==1)

         {

         continue;

         }
      }

Tout le code que tu mettras entre les accolades en gras (ci-dessus) fera partie du bloc 'for'.

Code à reprendre... 

@+  
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 juil. 2009 à 13:49
Salut,

Tu vas nous poser combien de fois la même question ? Tu n'as pas compris ce qu'on t'as dit précédement ?

Il faut une accolade après la boucle for, sinon, forcément ca ne marche pas ! Et évite le continue qui fait très crade.

public class essaie
{
public static void main (String [] args)
{
for(int i =0; i <= 10; i++) {
if (i%2 !=1) {
System.out.println("carré de " + i + " = " + (i *i));
}
}
}
}
0
Madvin Messages postés 123 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2012 3
10 juil. 2009 à 13:52
Autre précision :

Tu dis que c'est en "exécutant" le programme que tu as l'erreur.
Ceci n'est pas vraiment correct puisque c'est en "compilant" ton programme que l'erreur se produit.
Avant de pouvoir "exécuter" un programme, il faut l'avoir "compilé" avec succès.
0
cs_domxaline Messages postés 327 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 10 mai 2012 2
10 juil. 2009 à 13:57
merci beaucoup j'ai compris
0
Rejoignez-nous