IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Aide premier TP openclassroom


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut Aide premier TP openclassroom
    Bonjour à tous,
    j'ai commencé hier a apprendre java sur un site et le premier TP me pose souci. Il s'agit d'un convertisseur celcius > fahrenheit, et vice versa. Voici ce que je souhaite obtenir

    Nom : objectif.jpg
Affichages : 496
Taille : 69,8 Ko

    Il y a bien la correction du TP qui me donne une solution mais ca ne me permet pas de comprendre ce que j'ai raté moi dans mon code :

    Nom : mon code.jpg
Affichages : 532
Taille : 220,4 Ko

    Voila je vous serai tres reconnaissant de m'aider à comprendre, il y a un fonctionnement qui m'échappe ! merci d'avance

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème est que Reponse12 est un char (caractère) et que tu le compares à des entiers (1 ou 2) pour ton menu. Les codes des caractères (lettres, chiffres, symboles...) n'ont rien à voir avec des entiers, même lorsque ces caractères sont des chiffres.

    Pour tester si un char est le caractère 1 : if ( Reponse12 == '1' ) { /*...*/
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut
    Ah merci super j'ai donc rajouté des apostrophes :

    if (Reponse12 == '1'){

    au lieu de

    if (Reponse12 == 1){

    et mon programme fonctionne à peu près. Par contre quand la question se pose ""Souhaitez-vous convertir une autre température ?" eclipse me renvoie une autre erreur , je vous met un screenshot :

    Nom : erreur java.jpg
Affichages : 388
Taille : 78,4 Ko

    Est-ce que tu sais d'ou ca vient ? merci de ton aide encore !

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Quand on saisit un nombre au clavier, on tape la touche entrée pour valider sa saisie. Tous les caractères frappés sont mis dans un tampon, y compris celui correspondant à la touche entrée (newline).
    Quand on lit le contenu du tampon, par nextDouble(), on lit le prochain double contenu dans le tampon, non compris ce caractère "entrée", qui reste donc dans le tampon.
    Lorsqu'on appelle nextLine() ensuite on lit tout ce qui se trouve dans le tampon, jusqu'au prochain newline, et c'est donc ce qu'il reste dans le tampon de la saisie du double, ce caractère "entrée" qu'on reçoit, mais celui-ci n'est jamais inclus dans ce qu'on obtient par nextLine() : on obtient donc une chaîne vide. Donc, forcément, quand tu demandes le premier caractères de cette chaîne qui n'en compte que 0, tu obtiens une StringIndexOutOfBoundException.

    Il faut donc vider le tampon par un appel de nextLine() après toute série de lectures du tampon correspondant à une demande de saisie (sauf nextLine() qui le fait).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2013
    Messages : 35
    Par défaut
    Ahh ok, j'ai donc rajouté deux "sc.nextLine();" à mon code et ca fonctionne !

    Un grand merci, j'espère que j'arriverai à comprendre tout ce qui m'attend

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide premier script "pseudo horloge"
    Par Quartman dans le forum Général Python
    Réponses: 16
    Dernier message: 06/10/2013, 17h00
  2. aide premier tchat irc
    Par vegeta59 dans le forum IRC / mIRC
    Réponses: 7
    Dernier message: 14/11/2011, 17h00
  3. Aide premiere utilisation
    Par yupa dans le forum IIS
    Réponses: 0
    Dernier message: 25/05/2008, 00h02
  4. [aide] premier jour et dernier jour
    Par lancer83 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/11/2007, 15h01
  5. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo