Bonsoir,
J'ai fait un programme tout simple pour convertir des francs en euros et vice versa en demandant à l'utilisateur le type de conversion , la somme et s'il souhaite continuer: j'ai une erreur au moment de la saisie :
Merci pour vos suggestionsConversion Frs-Euros, tapez 1, Conversion Euros-Frs, tapez 2 : 1
Saisir la somme : 111
somme saisie : 111.0
Somme en Euros : 16.921840913352554
Autre conversion ( O/N) ?
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:686)
at TestConversion.main(TestConversion.java:40)
voici mon code :
et le main
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 import java.util.Scanner; public class Conversion { Scanner sc=new Scanner(System.in); private double Somme; static double indice ; Conversion () { // constructeur indice = 6.55957 ; } public double getSomme (){ return Somme; } public void setSomme (double saisie) { Somme = saisie; } public double ConversionEuros_Frs () { return Somme/indice; } public double ConversionFrs_euros () { return Somme*indice; } public void AfficherEuros () { System.out.println ("Somme en Euros : " + this.ConversionFrs_euros() ); } public void AfficherFrancs () { System.out.println ("Somme en Euros : " + this.ConversionEuros_Frs () ); } public String toString () { return "somme saisie : " + this.Somme ; } }
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 import java.util.Scanner; public class TestConversion { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Conversion A1 = new Conversion (); int reponse; char encore; double somme ; do { do { System.out.print("Conversion Frs-Euros, tapez 1, Conversion Euros-Frs, tapez 2 : "); reponse = sc.nextInt(); if ( reponse != 1 && reponse != 2) System.out.print("Choix incorrect, recommencez !"); }// fin du 2ème do while (reponse != 1 && reponse != 2); System.out.print("Saisir la somme : "); somme= sc.nextDouble(); A1.setSomme(somme); System.out.print(A1 + "\n"); //vérifier saisie if ( reponse == 1 ) { A1.ConversionFrs_euros(); A1.AfficherFrancs(); } else { A1.ConversionEuros_Frs(); A1.AfficherEuros(); } System.out.println("Autre conversion ( O/N) ? "); encore = sc.nextLine().charAt(0); }// fin du 1er do while (encore == 'O'); System.out.print("Fin"); } }
Partager