Problème avec la fonction scanner
aliostux
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, tout le monde
je viens de commencer le Java ,j'ai appris quelques variables et boucles que j'ai voulu mettre en pratique. J'ai fait un petit programme ,sauf que quand je le lance et je repasse la boucle il lit le scanner précédent ou affiche une erreur du type
"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at project2.main(project2.java:44)"
je pense qu'il faut purger les lignes lue mais je sais pas comment le faire ni où faut t-il exactement purger?
voici mon code
je viens de commencer le Java ,j'ai appris quelques variables et boucles que j'ai voulu mettre en pratique. J'ai fait un petit programme ,sauf que quand je le lance et je repasse la boucle il lit le scanner précédent ou affiche une erreur du type
"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at project2.main(project2.java:44)"
je pense qu'il faut purger les lignes lue mais je sais pas comment le faire ni où faut t-il exactement purger?
voici mon code
import java.util.Scanner;Merci d'avance pour votre aide
public class project2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("calulateur des propriétés du photon");
System.out.println("---------------------------------------------------------------------");
char rep = ' ';
char mode;
double resultat;
double h = 6.6260*(Math.pow(10,-34));
double c = 3.00*(Math.pow(10, 8));
double en;
double lambda;
char typeconv = ' ';
char typeconv1 = ' ';
char typeconv2 = ' ';
char typeconv3 = ' ';
Scanner sc = new Scanner(System.in);
double resultat2 ;
do
{
do {
System.out.println("Que voulez vous calculer :");
System.out.println("1-Nu");
System.out.println("2-lamdba");
System.out.println("3-?E");
mode = sc.nextLine().charAt(0);
}while(mode != '1' && mode != '2' && mode != '3' );
switch(mode)
{
case '1':
{
System.out.println("entrez ?E ");
en = sc.nextDouble();
sc.nextLine();
while (typeconv!= '1' && typeconv!='2')
{
System.out.println("?E est en Joule (1) ou en eV(2)");
typeconv = sc.nextLine().charAt(0);
sc.nextLine().charAt(0);
}
if (typeconv == '1')
{resultat = en / h;}
else { resultat = ((en * (1.602*Math.pow(10, -19))) / h);}
System.out.println("Nu est égale à " + resultat + " Hz");}
break;
case '2':
{
System.out.println("entrez ?E");
en = sc.nextDouble();
while (typeconv1!= '1' && typeconv1!='2')
{
System.out.println("?E est en Joule (1) ou en eV(2)");
sc.nextLine();
typeconv1 = sc.nextLine().charAt(0);
sc.nextLine();
}
if (typeconv1 == 1)
{resultat = (h*c)/en;}
else { resultat = ((h*c)/(en * (1.602*Math.pow(10, -19))));}
System.out.println("lambda est égale à " + resultat + " m");
}
break;
default:
{
System.out.println("entrer lambda");
lambda = sc.nextDouble();
sc.nextLine();
while (typeconv2!= '1' && typeconv2!='2')
{
System.out.println("? est en m (1) ou en nm(2) ?");
typeconv2 = sc.nextLine().charAt(0);
}
if (typeconv2 == 1)
{resultat = (h*c)/ lambda;}
else { resultat = ((h*c)/(lambda * (Math.pow(10,-9))));
typeconv3= sc.nextLine().charAt(0);
sc.nextLine();
}
if(typeconv3 == 'O')
{ resultat2 = resultat / (1.6*Math.pow(10, -19));
System.out.println(resultat2 + " eV"); }
else System.out.println("ok");}}
do
{
System.out.println("voulez vous recommencer ?(O/N)");
rep = sc.nextLine().charAt(0);
sc.nextLine();
}while(rep != 'O' && rep != 'N');
sc.nextLine();
}while(rep == 'O');
System.out.println("au revoir!");}}
A voir également:
- Problème avec la fonction scanner
- Fonction si et - Guide
- Scanner qr code pc - Guide
- Installer scanner - Télécharger - Divers Utilitaires
- Angry ip scanner - Télécharger - Divers Réseau & Wi-Fi
- Advanced port scanner - Télécharger - Utilitaires