Debutant en java=problemes

Fermé
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 - 24 juil. 2009 à 23:10
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 - 25 juil. 2009 à 16:36
Bonjour,
voila j'essaye de me lancer ds le java grace au tuto de cysbos sur siteduzero.com et dc j'essaie de faire un convertisseur celsius farenheit et voila ce qui ce passe quand je l'éxécute avec éclipse:
celsius:
1
farenheit:33.8
Voulez-vous réessayer ?(O/N)
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
	at java.lang.String.charAt(Unknown Source)
	at Degvar.main(Degvar.java:32)


voila le code source que j'essaye de faire fonctionner. Ou est l'erreur? merci de votre aide.

import java.util.Scanner;
public class Degvar {
    public static void main(String[] args) {
	//Une variable vide
	double celsius;
	double farenheit;
	// On initialise celle-ci à O pour oui !
	char reponse = 'O';
	//Notre objet Scanner, n'oubliez pas l' import de java.util.Scanner
	Scanner sc = new Scanner(System.in);
	while (reponse == 'O')
	{
	
	
	   //On affiche une instruction
	   System.out.println("celsius:");
	   //On récupère le prénom saisi
	   celsius = sc.nextDouble();
	   farenheit = celsius * 1.8;
	   farenheit = farenheit + 32;
	   System.out.println("farenheit:" + farenheit);
	 //réinitialisation de la variable réponse. 
	   //Sans çà, nous n' entrions pas dans la deuxième boucle
	   reponse = ' ';
	                        
	   //tant que la réponse n'est pas O ou N, on repose la question
	   while(reponse != 'O' && reponse != 'N')
	   {
	       //On demande si la personne veut faire un autre essai
	       System.out.println("Voulez-vous réessayer ?(O/N)");
	       //On récupère la réponse de l'utilisateur
	       reponse = sc.nextLine().charAt(0);
	   }
	}
	//Fin de la boucle
	System.out.println("Au revoir...");
}
}
A voir également:

6 réponses

azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 9
24 juil. 2009 à 23:14
c une question ou une affirmation?

Si c une affirmation quel est le rapport?
0
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 9
24 juil. 2009 à 23:22
Oui c'est supposé etre en anglais mais ce qui est apres "//" c'est un commentaire personnel donc tu peut mettre ce que tu veut donc ds n'importe quelle langue mais sinon oui c'est en anglais les commandes. en tout cas la plupart je pense. comme do...while ou encore if...else etc.
0
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 9
24 juil. 2009 à 23:51
peronne n'a de réponse?
0
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 9
25 juil. 2009 à 00:11
Je vois pas pourquoi ce serait mal vu comme question, je réinvite a répondre a la premiere grace a une deuxieme, c'est tout.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut azertyqsdfghwxcvbn,

Je suis moi même débutante en java et j'ai eu le même problème que toi.
Je l'ai résolu en utilisant deux boucles DO... WHILE imbriquées.
Une qui fait ton convertisseur et l'autre qui sert à demander si on recommence.
Ca n'a jamais été tant que je laissais sc.nextLine().
Dès que j'ai essayé avec sc.next(), ca a marché nickel. ( Ce n'est pas pour rien qu'eclipse me le proposait ).

Comme je suis débutante je ne peux pas te garantir que ce soit la méthode académique mais ca marche.
j'espère que ca va t'aider
0
azertyqsdfghwxcvbn Messages postés 45 Date d'inscription lundi 29 juin 2009 Statut Membre Dernière intervention 1 septembre 2009 9
25 juil. 2009 à 16:36
merci, j'ai laissée mes while tel qu'ils était mais c bien le sc.nextLine() qui clochait.
merci beaucoup maintenant ça marche.
0