Probleme programme java tableau
man29du56
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
J'ai un probleme sur mon exercice de java il ne m'affiche pas le mot que saisi l'uitilisateur à l'envers.
Voici l'intitulé de l'exercice :
Ecrire alors un programme qui saisit un tableau de caractères au clavier puis
l'affiche à l'envers
Et le programme en question :
public class tableauCaractere {
public static void main(String[] argument) {
char tableauCaractere[] = new char[6];
String carac = null;
String carac2 = null;
String carac3 = null;
String carac4 = null;
String carac5 = null;
String carac6 = null;
char transi;
char transi2;
char transi3;
char transi4;
char transi5;
char transi6;
for(int i =0; i < tableauCaractere.length; i=6)
{
Scanner sc = new Scanner(System.in);
System.out.println ("Saisir un premier caractere :");
carac = sc.nextLine();
System.out.println ("Saisir un deuxieme caractere :");
carac2=sc.nextLine();
System.out.println ("Saisir un troisieme caractere :");
carac3=sc.nextLine();
System.out.println ("Saisir un quatrieme caractere :");
carac4=sc.nextLine();
System.out.println ("Saisir un cinquieme caractere :");
carac5=sc.nextLine();
System.out.println ("Saisir un sixieme caractere :");
carac6=sc.nextLine();
}
System.out.println ("tab = "+ carac + carac2 + carac3 + carac4 + carac5+ carac6);
{
transi=tableauCaractere[5];
transi2=tableauCaractere[0];
transi3=tableauCaractere[4];
transi4=tableauCaractere[1];
transi5=tableauCaractere[3];
transi6=tableauCaractere[2];
tableauCaractere[5]=transi2;
tableauCaractere[0]=transi;
tableauCaractere[4]=transi4;
tableauCaractere[1]=transi3;
tableauCaractere[3]=transi6;
tableauCaractere[2]=transi5;
System.out.print ("tab = "+ tableauCaractere[0]+tableauCaractere[1]+tableauCaractere[2]+tableauCaractere[3]+tableauCaractere[4]+tableauCaractere[5]);
}
}
}
J'ai un probleme sur mon exercice de java il ne m'affiche pas le mot que saisi l'uitilisateur à l'envers.
Voici l'intitulé de l'exercice :
Ecrire alors un programme qui saisit un tableau de caractères au clavier puis
l'affiche à l'envers
Et le programme en question :
public class tableauCaractere {
public static void main(String[] argument) {
char tableauCaractere[] = new char[6];
String carac = null;
String carac2 = null;
String carac3 = null;
String carac4 = null;
String carac5 = null;
String carac6 = null;
char transi;
char transi2;
char transi3;
char transi4;
char transi5;
char transi6;
for(int i =0; i < tableauCaractere.length; i=6)
{
Scanner sc = new Scanner(System.in);
System.out.println ("Saisir un premier caractere :");
carac = sc.nextLine();
System.out.println ("Saisir un deuxieme caractere :");
carac2=sc.nextLine();
System.out.println ("Saisir un troisieme caractere :");
carac3=sc.nextLine();
System.out.println ("Saisir un quatrieme caractere :");
carac4=sc.nextLine();
System.out.println ("Saisir un cinquieme caractere :");
carac5=sc.nextLine();
System.out.println ("Saisir un sixieme caractere :");
carac6=sc.nextLine();
}
System.out.println ("tab = "+ carac + carac2 + carac3 + carac4 + carac5+ carac6);
{
transi=tableauCaractere[5];
transi2=tableauCaractere[0];
transi3=tableauCaractere[4];
transi4=tableauCaractere[1];
transi5=tableauCaractere[3];
transi6=tableauCaractere[2];
tableauCaractere[5]=transi2;
tableauCaractere[0]=transi;
tableauCaractere[4]=transi4;
tableauCaractere[1]=transi3;
tableauCaractere[3]=transi6;
tableauCaractere[2]=transi5;
System.out.print ("tab = "+ tableauCaractere[0]+tableauCaractere[1]+tableauCaractere[2]+tableauCaractere[3]+tableauCaractere[4]+tableauCaractere[5]);
}
}
}
A voir également:
- Probleme programme java tableau
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
1 réponse
Bonjour,
Il y a beaucoup d'erreurs dans ton programme.
1) Ta boucle
En faisant
2) carac, carac1, etc. sont lus dans la boucle, mais ne sont jamais utilisés, il y a bien l'affichage de
Remarque : pourquoi faire des copier-coller pour la lecture de chaque caractère alors que tu es dans une boucle qui permet justement de répéter cette opération ? Ici tu as 6 caractères donc c'est faisable, si tu en avais 10000 est-ce que tu ferais 10000 copier-coller ?
3) Ensuite, c'est très confus avec tes "transi", en particulier sur l'ordre :
Certes au final c'est correct, mais est-ce que c'est vraiment le plus simple de faire 5,0,4,1,3,2 et 2,1,4,3,6,5 ? Même question que tout à l'heure si au lieu d'avoir 6 tu avais 10000, comment tu ferais ?
Il faut absolument que tu travailles sur les boucles et les tableaux, et c'est le but de cet exercice. Donc pars dans l'idée qu'au lieu d'avoir 6 caractères tu peux en avoir 10000.
Remarque : pour l'instant ce que tu lis dans ta boucle ce ne sont pas des caractères mais des String, pour lire un tableau de caractères tu peux tout simplement lire un seul String (qui est déjà un tableau de caractères).
Il y a beaucoup d'erreurs dans ton programme.
1) Ta boucle
for(int i =0; i < tableauCaractere.length; i=6)est fausse.
En faisant
i=6comme incrément tu arrêtes immédiatement la boucle après le premier tour puisque
tableauCaractere.lengthvaut 6. Il faudrait plutôt avoir
for(int i =0; i < tableauCaractere.length; i++)où
i++permet d'augmenter i de 1 en 1 et donc de faire les 6 tours de boucles attendus.
2) carac, carac1, etc. sont lus dans la boucle, mais ne sont jamais utilisés, il y a bien l'affichage de
System.out.println("tab = "mais celui-ci est après la boucle, pas pendant... du coup comme ces valeurs ne sont jamais utilisées, le tableauCaractere n'est jamais rempli !
Remarque : pourquoi faire des copier-coller pour la lecture de chaque caractère alors que tu es dans une boucle qui permet justement de répéter cette opération ? Ici tu as 6 caractères donc c'est faisable, si tu en avais 10000 est-ce que tu ferais 10000 copier-coller ?
3) Ensuite, c'est très confus avec tes "transi", en particulier sur l'ordre :
tableauCaractere[5] = transi2; tableauCaractere[0] = transi; tableauCaractere[4] = transi4; tableauCaractere[1] = transi3; tableauCaractere[3] = transi6; tableauCaractere[2] = transi5;
Certes au final c'est correct, mais est-ce que c'est vraiment le plus simple de faire 5,0,4,1,3,2 et 2,1,4,3,6,5 ? Même question que tout à l'heure si au lieu d'avoir 6 tu avais 10000, comment tu ferais ?
Il faut absolument que tu travailles sur les boucles et les tableaux, et c'est le but de cet exercice. Donc pars dans l'idée qu'au lieu d'avoir 6 caractères tu peux en avoir 10000.
Remarque : pour l'instant ce que tu lis dans ta boucle ce ne sont pas des caractères mais des String, pour lire un tableau de caractères tu peux tout simplement lire un seul String (qui est déjà un tableau de caractères).
public class tableauCaractere {
public static void main(String[] argument) {
char tableauCaractere[] = {' ',' ',' ',' ',' ',' '};
for(int i =0; i < tableauCaractere.length; i++)
{
Scanner sc = new Scanner(System.in);
System.out.println ("Saisir un caractere :");
String str = sc.nextLine();
char carac = str.charAt(0);
System.out.println ("tab = "+ carac );
}
System.out.print ("tab = "+ tableauCaractere[0]+tableauCaractere[1]+tableauCaractere[2]+tableauCaractere[3]+tableauCaractere[4]+tableauCaractere[5]);
}
}