Envoyé par
glmtsr82
Effectivement @hwoarang, la contrainte de déclarer le tableau dans le main est absolue, pas le choix de faire autrement (j'ai eu la confirmation). Ca élimine du coup pas mal d'options...
Bah, pas tant que ça (sans vouloir m'obstiner La classe Question, ok, c'est possible que tu ne doives pas utiliser de classe) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| public static void main(String[] args) {
do {
int nombreQuestions = demanderNombreQuestions();
Question[] questions = new Question[nombreDeQuestions]; // instanciation dans la méthode main
for(int i=0; i<nombreQuestions; i++) {
System.out.println( "Question " + i );
String question = demanderTexteQuestion();
int nombreDeReponses = demanderNombreDeReponses();
String[] reponses = new String[nombreDeReponses]; // instanciation dans la méthode main
for( int j=0; j<nombreDeReponses; j++ ) {
reponses[j] = demanderTexteReponse();
}
int numeroBonneReponse = demanderNumeroBonneReponse();
questions[i] = new Question( question, reponses, numeroBonneReponse );
}
System.out.println("Début du test");
int[] reponseUtilisateur = new int[nombreDeQuestions]; // dans la méthode main...
int nombreDeBonnesReponses = 0;
for(int i=0; i<nombreQuestions; i++) {
...
}
} while ( demanderSiRecommencer()) ;
} |
On pourrait même écrire ça (même si je n'aime pas vraiment et que ton prof pourrait ne pas aimer non plus...) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public static void main(String[] args) {
int nbQuestions = 10;
String[][] questions = new String[nbQuestions][0];
int[] bonneReponse = new int[nbQuestions];
for(int i=0; i<nbQuestions; i++) {
int nbReponses = 2 + (int)(Math.random()*2); // pour simuler un nombre de réponses différentes au moins égales à 2
questions[i] = new String[1 + nbReponses]; // le premier élément est la question
questions[i][0] = "Question " + i;
for(int j=0; j<nbReponses; j++) {
questions[i][j+1] = "Reponse " + j + " de la question " + i;
}
}
System.out.println(Arrays.deepToString(questions));
} |
Qui affiche par exemple (j'ai fait un passage à la ligne pour que ça soit plus flagrant ) :
[[Question 0, Reponse 0 de la question 0, Reponse 1 de la question 0],
[Question 1, Reponse 0 de la question 1, Reponse 1 de la question 1, Reponse 2 de la question 1],
[Question 2, Reponse 0 de la question 2, Reponse 1 de la question 2, Reponse 2 de la question 2],
[Question 3, Reponse 0 de la question 3, Reponse 1 de la question 3],
[Question 4, Reponse 0 de la question 4, Reponse 1 de la question 4, Reponse 2 de la question 4],
[Question 5, Reponse 0 de la question 5, Reponse 1 de la question 5, Reponse 2 de la question 5],
[Question 6, Reponse 0 de la question 6, Reponse 1 de la question 6, Reponse 2 de la question 6],
[Question 7, Reponse 0 de la question 7, Reponse 1 de la question 7],
[Question 8, Reponse 0 de la question 8, Reponse 1 de la question 8, Reponse 2 de la question 8],
[Question 9, Reponse 0 de la question 9, Reponse 1 de la question 9, Reponse 2 de la question 9]]
Partager