Prog java // while expected//

Résolu
salut a tous le monde j'espere que vous allez bien
apres compilation de ce programme en java il me donne *.java:23: while expected* alors j'ai pas trouve la faute
le prog :


import java .io.*;
public class Tri {
public static void main(String[] args)throws IOException {
int t[];
t= new int[10];
integer m , k , i ;

BufferedReader in=new BufferedReader(new inputStreamReader(System.in));

for(i=0;i<10;i++){
t[i]=Integer.valueOf(in.readLine()).intValue();
System.out.print("la valeur de"+i+"=");
}
//une boucle pour la lecture du tableau//
for(i=0;i<10;i++){
for(k=2;k<i;k++){if((t[i] mod k)=0) do t[i]=0;}
//boucle pour savoir si le nombre et premier//
if (t[i]!= 0){

for(m=i+1;m<10;m++){
if( (t[m])==(t[i]+2))do{

for(i=2;k<(t[i]+2);k++){ if (t[m] mod k) =0 )do t[m]=0 ;}}}
//boucle pour trouve si le nombre est premier jumeau//
if (t[m] != 0)
System.out.print(t[i]+","+t[i]+2);
}}}}


en plus il me dit qu(ila ya une '(' qui monque dans if ((t[m] mod k) =0 )

j'aimerai bien que quelqun m aide et merci
Configuration: Windows XP
Opera 9.22

16 réponses

  1. je telecharge quoi de microsoft
    vous voulez dire editeur ou bien quoi
    1. bonjour,

      J epense qu'il y a une erreur ici : if (t[m] mod k) =0 ) // <-- Attention à = et ==, le 1er affecte une valeur, le 2ème teste une égalité. Il est preférable d'utiliser equals().
      De plus il manque l'accolade après le If ...

      for(i=2;k<(t[i]+2);k++)
      {
         if (t[m] mod k) ==0 )  
         {
            do t[m]=0 ;
         }
      }


      ;o)

      polux
      1. bonjour,

        De rien, n'oublie pas de mettre résolu ... merci

        D'autre part, le message d'erreur : *.java:23: while expected* veut dire qu'il y a une erreur sur la ligne 23 ... il est donc plus facile de la retrouver ...

        bon courage

        ;o)

        Polux
        1. salut polux j'ai ajoute '=' dans la condition mais tjrs il y a un probleme dans la 23 ieme ligne il me dit


          Tri.java:23: ')' expected
          for(i=2;k<(t[i]+2);k++){ if ((t[m] mod k) ==0) do t[m]=0 ;}}}
          ^
          Tri.java:23: ')' expected
          for(i=2;k<(t[i]+2);k++){ if ((t[m] mod k) ==0) do t[m]=0 ;}}}
          ^
          Tri.java:23: while expected
          for(i=2;k<(t[i]+2);k++){ if ((t[m] mod k) ==0) do t[m]=0 ;}}}
          ^
          1. salut,

            il te manque toujours l'accolade après le if ...
            Tu devrais présenter ton code comme je l'ai fait plus haut ... c'est plus lisible et tu verrais de suite la différence ...

            Prends l'habitude de bien découper ton code, il a fallu que je le mette en forme pour y voir plus clair ...

            ;o)

            Polux
            1. je suis vraiment desole
              les accolade qui me manque doivent etre apres le do de if ?


              
              
              for(  i=2 ; k<(t[i]+2)  ; k++)
                                       
                                          {
                                       
              
                                                  if ((t[m] mod k) ==0)    do  {  
              
              
                                                                     t[m]=0 ;
              
                                                                                 }                          
                                      
              }
              1. je pense que c'est avant le do ... et d'ailleur je n'ai jamais utilisé de do dans une condition en java ... je pense que tu peux t'en passer ...

                ;o)

                Polux
                1. j'ai le probleme toujours avec le mod regard

                  
                  Tri.java:19: ')' expected
                                                if(t[i] mod k ==0) do 
                                                                               {
                                                                                  t[i]=0;
                                                                                  }
                                                         
                  Tri.java:25: ')' expected
                  
                  for(i=2;k<(t[i]+2);k++)      {
                   if ((t[m] mod k) ==0) do{
                                                                   t[m]=0 ;}}
                                                     
                  Tri.java:25: ')' expected
                  for(i=2;k<(t[i]+2);k++) { 
                                                         if ((t[m] mod k) ==0) do {
                                                                                     
                                                                                            t[m]=0;}}
                    
                  1. ok je vai effacer le do meme moi j'ai pad l habitude d'utilise le do je sais pas pourquoi je l'ai mis dans se prog
                    1. j 'ai reparer le if mais j'ai trouve la meme erreur c'est dans le mod
                      1. Contributeur
                        Remplace :
                        t[i] mod k
                        Par :
                        t[i] % k

                        Et quitte à faire met des parenthèses :
                        (t[i] % k)
                        1. ok vu ... il manque une parenthèse fermante à la ligne 19 :

                          if ((t[i] mod k) ==0)
                          1. oupssss, exact modulo = % en java ... pas vu ça :os ...

                            merci kij_80

                            ;o)

                            polux
                            1. wooooow ca marche c t juste le mod je l'ai changer en %

                              merci bcp plox31 et kij-82 merci..merci