Bonjour à tous,
Débutant en programmation java, je m'entraine sur les conditions et les boucles.
J'ai voulu mettre en place un petit programme tout simple où l'on rentre une note, en fonction de celle ci une appréciation est donné puis en fin de compte demande si l'utilisateur veut recommencer.
Tout se passe comme sur des roulettes jusqu’à ce que le programme demande à l'utilisateur si il veut recommencer et me met cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
46
47 import java.util.Scanner; public class Test { public static void main(String[] args) { String prenom; Scanner sc= new Scanner(System.in); char reponse= ' ' ; int note; do { System.out.println("Veuillez rentrer votre prenom:"); prenom=sc.nextLine(); System.out.println("Bonjour," +prenom+ "! Rentre ta moyenne:"); note= sc.nextInt(); switch (note) { case (0): System.out.println( "insuffisant"); break; case (10): System.out.println("juste juste"); break; case (20): System.out.print("genial !"); break; } if (note>0 && note<10) { System.out.println("Travail encore plus!"); } else if (note>10 && note<20) { System.out.println("tu atteint presque la perfection!"); } do { System.out.println("Veux tu recommencer ? (O/N)"); reponse= sc.nextLine().charAt(0); }while(reponse !='O' && reponse != 'N'); }while (reponse=='O'); } }
Veuillez rentrer votre prenom:
pierre
Bonjour,pierre! Rentre ta moyenne:
5
Travail encore plus!
Veux tu recommencer ? (O/N)
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at Test.main(Test.java:41)
J'ai d'abord vérifié la syntaxe plusieurs fois, je pense qu'elle est correcte. J'ai aussi essayé de mettre mes conditions à la suite de mes boucles mais dans ce cas elles ne sont pas prises en compte par mes boucles et seul cette dernière fonctionne.
Je crois comprend que charAt n'est pas reconnu bien qu'il est déclaré avec les autres variables au début !
Est ce à cause des conditions qui sont entre ma première et seconde boucle ?
Faut-il que je fasse une sorte de "rappel" de mes variables pour la seconde boucle ?
Est ce préférable que je crée une class pour mes conditions et une seconde pour les boucles ?
J'ai tenté quelques solutions qui ne m'ont pas apportées grand choses, si quelqu'un peu m’éclairer ça serait avec grand plaisir. Merci d'avance.
Cordialement
Etain Delbaeth
Partager