[JAVA]Pb retour variable... [Résolu]

Pb retour variable... [Résolu] [JAVA] - Java - Programmation

Marsh Posté le 15-04-2005 à 12:37:48    

Salut,
je débute en JAVA et j'essaie de faire un programme de cryptage basique qui utilise le principe du masque jetable. J'y arrive en statique, mais maintenant, je voudrais le rendre interactif.
Mais c'est là que le bas blesse... :D  
 
Je n'arrive pas à ressortir ma variable masque de ma boucle while. Est-ce que quelqu'un aurait une idée ? Merci d'avance.
 
PS : Je ne met ici qu'un test de sorti de variable...
 
import java.io.*;
public class CryptoMot{
 public static void main (String[] args){
  int taillemot;
  BufferedReader IN=null;
  try{
   IN=new BufferedReader(new InputStreamReader(System.in));
  }
  catch (Exception ex){}
  System.out.print("Mot a crypter : " );
  String mot=null;
  try{
   mot=IN.readLine();
  }
  catch (Exception ex){}
  taillemot=mot.length();
  int taillemasque=0;
  BufferedReader IN2=null;
  try{
   IN2=new BufferedReader(new InputStreamReader(System.in));
  }
  catch (Exception ex){}
  while(taillemasque!=taillemot){
   System.out.print("Masque de "+taillemot+" caractere: " );
   String masque=null;
   try{
    masque=IN.readLine();
   }
   catch (Exception ex){};
   taillemasque=masque.length();
  }
  System.out.println(masque);
 }
}


Message édité par frenchlover le 15-04-2005 à 14:20:33

---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 12:37:48   

Reply

Marsh Posté le 15-04-2005 à 12:47:33    

Ben il faut pas la déclarer dans une boucle tout simplement!
Tu la déclares au début juste après:
int taillemot;  
String masque=null;  
et la ca devrait marcher...
d'ailleurs pour ne rien faire en static tu devrais pas bosser dans le main


---------------
°o° It only hurts if you survive  °o°
Reply

Marsh Posté le 15-04-2005 à 12:59:23    

Citation :

       catch (Exception ex){}

[:ciler]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-04-2005 à 13:04:12    

Ben, je peux pas déclarer ma variable avant le while... Ou alors comment ?
Car la variable est défini dans le while uniquement si le nombre de caractères qui la compose sont conforme avec la taille du mot à crypter.
 
N'y a-t-il pas moyen de ressortir cette variable. Un truc du genre "return masque" ou quelque chose comme ça ???


---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 13:59:52    

Pourquoi tu veux pas la décaler?
De toute facon elle sera cree si tu passes dans le while... alors plus haut ou plus bas... tu la remets juste a null dans la boucle.


---------------
°o° It only hurts if you survive  °o°
Reply

Marsh Posté le 15-04-2005 à 14:06:30    

C'est pas que je veux pas, mais si je met un String masque=nul avant la boucle, quand je veux compiler, ça me répond que la variable est déjà défini dans le main...
 
Comment faire alors ?


---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 14:09:44    

1000 excuses, je l'avais pas déclarer ou il fallait. Ca a l'air de marcher.
 
Bon, ben je vais pouvoir passer à la phase suivante du programme.
 
Merci


---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 14:10:17    

Code :
  1. package test;
  2. import java.io.*;
  3. public class CryptoMot
  4. {
  5.     public static void main (String[] args)
  6.     {
  7.         int taillemot;
  8.         BufferedReader IN=null;
  9.         try
  10.         {
  11.             IN=new BufferedReader(new InputStreamReader(System.in));
  12.         }
  13.         catch (Exception ex){}
  14.         System.out.print("Mot a crypter : " );
  15.         String mot=null;
  16.         try
  17.         {
  18.             mot=IN.readLine();
  19.         }
  20.         catch (Exception ex){}
  21.         taillemot=mot.length();
  22.         int taillemasque=0;
  23.         BufferedReader IN2=null;
  24.         try
  25.         {
  26.             IN2=new BufferedReader(new InputStreamReader(System.in));
  27.         }
  28.         catch (Exception ex){}
  29.         String masque=null;
  30.         while(taillemasque!=taillemot)
  31.         {
  32.             System.out.print("Masque de "+taillemot+" caractere: " );
  33.             try{
  34.                 masque=IN.readLine();
  35.             }
  36.             catch (Exception ex){};
  37.             taillemasque=masque.length();
  38.         }
  39.         System.out.println(masque);
  40.     }
  41. }


Chez moi ca compile...


---------------
°o° It only hurts if you survive  °o°
Reply

Marsh Posté le 15-04-2005 à 14:14:42    

the real moins moins a écrit :

Citation :

       catch (Exception ex){}

[:ciler]


toi aussi ? :D

Reply

Marsh Posté le 15-04-2005 à 14:17:18    

Zzozo a écrit :

toi aussi ? :D


Pourriez-vous me dire ce que ça signifie ???
Je rappel que je débute. J'ai trouvé cette façon de traiter les exception dans un cour d'un prof d'université...
Si vous avez quelque chose à proposer, n'hésiter pas, je ne demande qu'à apprendre.


---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 14:17:18   

Reply

Marsh Posté le 15-04-2005 à 14:19:19    

Voilà, bon, c'est peut-être pas optimisé, mais ça fonctionne. Si jamais ça intéresse quelqu'un...
Le programme demande de saisir un mot, calcul la taille, demande de saisir un masque de la même taille, puis applique un XOR entre les deux pour crypter le mot.
 

Code :
  1. import java.io.*;
  2. public class CryptoMot{
  3. public static void main (String[] args){
  4.  int taillemot;
  5.  BufferedReader IN=null;
  6.  try{
  7.   IN=new BufferedReader(new InputStreamReader(System.in));
  8.  }
  9.  catch (Exception ex){}
  10.  System.out.print("Mot a crypter : " );
  11.  String mot=null;
  12.  try{
  13.   mot=IN.readLine();
  14.  }
  15.  catch (Exception ex){}
  16.  taillemot=mot.length();
  17.  int taillemasque=0;
  18.  String masque=null;
  19.  BufferedReader IN2=null;
  20.  try{
  21.   IN2=new BufferedReader(new InputStreamReader(System.in));
  22.  }
  23.  catch (Exception ex){}
  24.  while(taillemasque!=taillemot){
  25.   System.out.print("Masque de "+taillemot+" caractere: " );
  26.   try{
  27.    masque=IN.readLine();
  28.   }
  29.   catch (Exception ex){};
  30.   taillemasque=masque.length();
  31.  }
  32.  char[] Tableau1 = mot.toCharArray();
  33.  char[] Tableau2 = masque.toCharArray();
  34.  int z=0;
  35.  System.out.print("Le mot crypter est : " );
  36.  while (z<taillemot){
  37.   char a=(char)(Tableau1[z]^Tableau2[z]);
  38.   z=z+1;
  39.   System.out.print(a);
  40.  }
  41.   System.out.println();
  42. }
  43. }


 
Merci à MadShark pour son aide...


---------------
Ce n'est pas parce que c'est difficile que nous n'osons pas, c'est parce que nous n'osons pas que c'est difficile
Reply

Marsh Posté le 15-04-2005 à 15:21:54    

frenchlover a écrit :

J'ai trouvé cette façon de traiter les exception dans un cour d'un prof d'université...


[:ciler]
 
 
un jour faudra faire un joli post sur le traitement d'exception ...
 
 
> la question que tu dois te poser c'est "quelle est la conséquence, si une exception se déclenche, sur l'execution de mon programme ?".  
En gros, soit tu traite l'exception (dans ton catch) de façon à ce que ton programme retmbe sur ses pattes, soit tu laisses remonté l'exception à l'appelant, qui devra avoir ce même genre de reflexion.
 
mais JAMAIS DE CATCH VIDE !!!!
le minimum syndicale, c'est au moins de faire un e.printStackTrace().
Et dans les rares cas où un catch doit effectivement rester vide, on indique pourquoi dans un commentaire.


Message édité par benou le 15-04-2005 à 15:22:04

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 15-04-2005 à 17:31:43    

frenchlover a écrit :

Pourriez-vous me dire ce que ça signifie ???
Je rappel que je débute. J'ai trouvé cette façon de traiter les exception dans un cour d'un prof d'université...


euh. A part tout l'inverse, ça fait rien d'autre là.
Qu'il aille se pendre, ce prof.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed