Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1430 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème avec char

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec char

n°2430859
kreiss_
Posté le 01-11-2022 à 19:38:01  profilanswer
 

Bonjour j'ai hésité à poster mais je ne trouve pas de solution à mon souci. Je suis un débutant en Java. J'ai un souci avec char choix. Comme on ne peut pas utiliser choix = clavier.nextChar je l'ai remplacé par choix =clavier.nextLine().charAt(). Mais ça ne marche pas.
package boucles;
 
import java.util.Scanner;
 
public class fairedowhile {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double x;
        char choix ='O';
           
         
        Scanner clavier = new Scanner(System.in);
         
         
 
        do {
            System.out.println("entrer un montant : " );
 
            x = clavier.nextDouble();
 
            if (x > 200)
                x = 0.95 * x;
            System.out.printf("le prix avec remise est %.2f euros ", x);
 
            System.out.println();
            System.out.print("voulez vous entrer un nouveau montant: O/N?" );
             
            choix = clavier.nextLine().charAt(0);
     
             
   
        } while (choix == 'O');
         
        clavier.close();
 
    }
 
}
 
Je vous remercie pour votre aide.


Message édité par kreiss_ le 02-11-2022 à 15:07:46
mood
Publicité
Posté le 01-11-2022 à 19:38:01  profilanswer
 

n°2430900
kreiss_
Posté le 02-11-2022 à 15:08:57  profilanswer
 

Code :
  1. entrer un montant :
  2. 500
  3. le prix avec remise est 475,00 euros
  4. voulez vous entrer un nouveau montant: O/N?Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  5. at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
  6. at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
  7. at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
  8. at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
  9. at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
  10. at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
  11. at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
  12. at java.base/java.lang.String.checkIndex(String.java:4570)
  13. at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:46)
  14. at java.base/java.lang.String.charAt(String.java:1527)
  15. at boucles.fairedowhile.main(fairedowhile.java:29)

ça m'affiche une erreur en ligne 29.
merci

n°2431077
Flaie
No it's necessary
Posté le 04-11-2022 à 10:01:25  profilanswer
 

Utilise:
1. scanner.next() pour récupérer la prochaine ligne, et compare des String directement.
2. Un try-with-resources pour ne pas avoir à appeler scanner.close() toi même
 

Code :
  1. import java.util.Scanner;
  2.  
  3. import static java.lang.System.out;
  4.  
  5. public class FaireDoWhile {
  6.    public static void main(String[] args) {
  7.        try (Scanner clavier = new Scanner(System.in)) {
  8.            do {
  9.                out.println("Entrer un montant : " );
  10.  
  11.                double x = clavier.nextDouble();
  12.  
  13.                if (x > 200)
  14.                    x = 0.95 * x;
  15.                out.printf("Le prix avec remise est %.2f euros\n", x);
  16.  
  17.                out.print("Voulez vous entrer un nouveau montant: O/N? " );
  18.  
  19.            } while ("O".equals(clavier.next()));
  20.        }
  21.    }
  22. }



---------------
Always wear a camera!
n°2431184
kreiss_
Posté le 04-11-2022 à 23:22:40  profilanswer
 

Flaie a écrit :

Utilise:
1. scanner.next() pour récupérer la prochaine ligne, et compare des String directement.
2. Un try-with-resources pour ne pas avoir à appeler scanner.close() toi même
 

Code :
  1. import java.util.Scanner;
  2.  
  3. import static java.lang.System.out;
  4.  
  5. public class FaireDoWhile {
  6.    public static void main(String[] args) {
  7.        try (Scanner clavier = new Scanner(System.in)) {
  8.            do {
  9.                out.println("Entrer un montant : " );
  10.  
  11.                double x = clavier.nextDouble();
  12.  
  13.                if (x > 200)
  14.                    x = 0.95 * x;
  15.                out.printf("Le prix avec remise est %.2f euros\n", x);
  16.  
  17.                out.print("Voulez vous entrer un nouveau montant: O/N? " );
  18.  
  19.            } while ("O".equals(clavier.next()));
  20.        }
  21.    }
  22. }



je te remercie.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème avec char

 

Sujets relatifs
probleme de suppression d'un champ de type charProblème core dumped sur pointeur de char
Problème return char.problème d'affectation de char
Problème de conversion string en const char *Problème de type: Pixel =int, char ?
Probleme scanf et charproblème avec une fonction qui renvoie un pointeur de char
Probleme de taille de structure avec char[] et doubleProblème converson d'hexa vers char
Plus de sujets relatifs à : Problème avec char


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR