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 :

saisie un int obligatoirement avec Scanner


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut saisie un int obligatoirement avec Scanner
    bonjour, je code une classe en java pour saisir des notes, et je voudrai pouvoir redemander a l'utilisateur de ressaisir un nombre si par exemple il saisie des lettres a la place d'une note. merci
    voici le code
    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
    45
    46
    47
    48
    49
    50
    51
    52
    package tableau;
     
    import java.util.Scanner;
     
    public class tableauNote {
     
    	private int[] note; // variable d'instance crée un tableau de int
    	private Scanner sc;// variable d'instance crée un Scanner pour la saisie des
    						// notes
    	private String nom;
     
    	public tableauNote(String n, int x) {// constructeur qui crée un tableau
    		note = new int[x];
    		nom = n;
    	}
     
    	public void affiche() {// methode qui affiche le tableau
    		System.out.print(nom + ": ");
    		for (int i = 0; i < note.length; i++) {
    			System.out.print(note[i] + "|");
    		}
    		System.out.println();
    	}
     
    	public void saisirNote() {// methode qui permet de saisir des données dans
    								// le tableau
     
    		try {
    			sc = new Scanner(System.in);
    			System.out.println("saisir les notes");
    			for (int i = 0; i < note.length; i++) {
    				note[i] = sc.nextInt();
    			}
    		} catch (Exception e) {
    			sc.close();
    		}
    	}
     
    	public void calculMoyenne() {
    		double somme = 0.0;
    		for (int i = 0; i < note.length; i++) {
    			somme = somme + note[i];
    		}
    		double moyenne = somme / note.length;
    		System.out.println("moyenne: " + moyenne + "total: " + somme);
    		if (moyenne >= 10) {
    			System.out.println("admis");
    		} else {
    			System.out.println("non admis");
    		}
    	}
    }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Commence par faire une méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private int saisirUneNote(Scanner scanner)
    Qui s'occupera de demander à ce qu'une note soit saisie, et de redemander si ce n'est pas un nombre.
    Mais si tu ne sais pas entièrement comment le faire, fais le début, essaie de t'en servir et de le faire marcher dans le cas où l'utilisateur tape bien des nombres, puis observe ce qui se passe mal quand il tape autre chose.

    Viens ensuite nous montrer où tu en es arrivé, on aura d'autres conseils.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut
    a la fin du code il y a une methode qui rempli le tableau
    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
    public void saisirNote() {// methode qui permet de saisir des données dans
    								// le tableau
     
    		try {
    			sc = new Scanner(System.in);
    			System.out.println("saisir les notes");
    			for (int i = 0; i < note.length; i++) {
    				note[i] = sc.nextInt();
    			}
    		} catch (Exception e) {
    			sc.close();
    		}
    	}
     
    	public void calculMoyenne() {
    		double somme = 0.0;
    		for (int i = 0; i < note.length; i++) {
    			somme = somme + note[i];
    		}
    		double moyenne = somme / note.length;
    		System.out.println("moyenne: " + moyenne + "total: " + somme);
    		if (moyenne >= 10) {
    			System.out.println("admis");
    		} else {
    			System.out.println("non admis");
    		}
    	}
    }
    cette methode fonctionne je que je voudrai c'est sécurisé la saisie pour evité de metttre aute chose que des nombres de type Int

    je met un exemple de creation issue de mon main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    package tableau;
    public class testTab {
     
    	public static  void main(String[] args) {
     
    		tableauNote t1 = new tableauNote("jean",2);
    		t1.affiche();
    		t1.saisirNote();
    		t1.affiche();
    		t1.calculMoyenne();
    je ne s'ai pas si j'ai bien fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void saisirNote2(Scanner sc){
    		try {
    			sc = new Scanner(System.in);
    			System.out.println("saisir les notes");
    			for (int i = 0; i < note.length; i++) {
    				note[i] = sc.nextInt();
    			}
    		} catch (Exception e) {
    			sc.close();
    		}
    	}
    mais quand je fais sa sa fait la meme chose en faite si je mais une lettre sa me mets un 0 dans le tableau

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Non, une note. Fais une méthode qui récupère une seule note. Pas remplir le tableau, une note, une, une seule.

    Et ta méthode qui remplit le tableau, se contente d'appeler la méthode qui récupère une note, autant de fois qu'il faut pour remplir le tableau.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut je crois que sa avance
    j'ai fait sa sa avance un peu
    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
    package testexo;
     
    import java.util.Scanner;
     
    public class test {
     
    	public void saisirNote(Scanner sc) {
    		try {
    			Scanner sc1 = new Scanner(System.in);
    			System.out.println("sasir note");
    			sc1.nextInt();
    			sc1.close();
    		} catch (Exception e) {
    			 System.out.println("Please use valid input.");
    		}
    	}
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		test t1 = new test();
    		t1.saisirNote(null);
    	}
     
    }

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Pour faire ce que tu souhaite, je te conseille de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int note;
    try{
    	Scanner sc1 = new Scanner(System.in);
    	System.out.println("Saisir note:");
    	note = Integer.parseInt( sc1.nextLine() ) );				
    } catch (NumberFormatException e){
    	System.out.println("Veuillez saisir un nombre entier!");
    	note = Integer.parseInt( sc1.nextLine() ) );
    }
    Il faut aussi que tu change quelque chose dans ton code. Quand tu appelle ta méthode, tu met null en argument. Il faut que tu y mette un scanner sinon ça ne fonctionnera pas! Pour cela, met ta déclaration de sc1 juste au dessus de ta méthode. Dans cette dernière, remplace tous les sc1 par sc.
    Pour finir, met sc1 en argument quand tu appelle ta méthode.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    @dandy-kun> Quatre choses :

    - Ne fais pas de new Scanner dans ta méthode -_-°. Tu as un Scanner en paramètre, il est pas là pour faire joli, utilise-le ! Tu ne peux pas créer plusieurs Scanner sur la même entrée, c'est pour ça qu'on le passe en paramètre : pour n'en utiliser qu'un seul dans tout le programme.

    - Ne ferme pas le Scanner dans ta méthode -_-°. Tu vas en avoir besoin au prochain appel. Si vraiment tu veux le fermer, fais-le quand ton programme entier est terminé (ça n'a pas d'intérêt puisque l'OS va de toute façon le fermer à ce moment-là.)

    - j'ai dit, private int saisirUneNote(Scanner scanner). int, pas void. Il ne suffit pas de lire la note avec nextInt(), il faut encore dire à l'appelant quelle est cette note. Pour que l'appelant puisse l'ajouter dans son tableau.

    - Dans ton code, tu n'appelles cette méthode qu'une seule fois. Je t'ai dit que tu dois l'appeler autant de fois que nécessaire pour remplir le tableau. Fais-le.

    @JeremGamer> La seule différence, c'est que tu fais nextLine() suivi de parseInt() au lieu de faire directement nextInt(). C'est un peu plus compliqué, deux appels au lieu d'un seul, et ça n'a pas d'avantage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Citation Envoyé par thelvin
    La seule différence, c'est que tu fais nextLine() suivi de parseInt() au lieu de faire directement nextInt(). C'est un peu plus compliqué, deux appels au lieu d'un seul, et ça n'a pas d'avantage.
    La différence c'est que pour gérer les exceptions, c'est plus pratique, enfin, de mon point de vue! Dans son cas, si la valeur n'est pas une int comme ça il peut gérer ça correctement.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Es-tu en train de dire qu'en faisant avec nextInt(), ça ne peut pas être géré correctement, ou c'est moins pratique ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut sa avance
    Re bonjour, j'ai cour de prog et j'en est parlé a mon prof il ma dis de ne pas mettre une methode qui fait un return.
    j'ai fais ceci sa a l'air de fonctionner.
    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
    package testexo;
     
    import java.util.Scanner;
     
    public class test {
    	int tab[];
    	int i = 0;
     
    	public test(int x) {
    		tab = new int[x];
    	}
     
    	public void saisirNote(Scanner scanner) {
    		int a=0;	
    		for (int i = 0; i < tab.length; i++) {
    		try {
    				System.out.println("sasir note");
    				a=scanner.nextInt();}
    			catch (Exception e) {
    				System.out.println("Please use valid input.");
    			}
    			tab[i]=a;
    		}
     
    	}
    	public void affiche() {
    		for (int i = 0; i < tab.length; i++) {
    			System.out.print(tab[i]);
     
    		}
    	}
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		test t1 = new test(2);
    		t1.saisirNote(new Scanner(System.in));
    		t1.affiche();
    	}
    }

  11. #11
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Slt,

    Voici un code qui marche tre bien pour calculer la moyenne:
    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
    package probleme;
     
    import java.util.Scanner;
     
    public class Prb_Main {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    //Prb01 fenetre=new Prb01();
     
     
    	    //
    	    System.out.print("------------***Calculer la moyenne***------------");
    	    //
    	    System.out.print("\n\nVeuillez entrez une note:\n");
    	    Scanner sc1 = new Scanner(System.in);
    		double note;
    		note=sc1.nextDouble();
    		//
    		System.out.print("\n\nVeuillez entrez le coeficient:\n");
    		Scanner sc2 = new Scanner(System.in);
    		double coefficient;
    		coefficient=sc2.nextDouble();
    		//
    		System.out.print("\n\nVeuillez entrez le nbre de note:\n");
    		Scanner sc3 = new Scanner(System.in);
    		double nbrDeNote;
    		nbrDeNote=sc3.nextDouble();
    		//
    		System.out.print("\n\nLa moyenne est de:\n");
    		double result=note*coefficient/nbrDeNote;
    		System.out.print(result);
     
     
    	}
     
    }
    J'espere t'avoir aidé,vu ta question j'ai fait le maximum,apres si tu veux pouvoir rentrer plusieurs notes avec plusieurs coef differents... dis le moi je t'aiderai si je peux.

    En esperant t'avoir aidé.
    Tchao.

  12. #12
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dandy-kun Voir le message
    Re bonjour, j'ai cour de prog et j'en est parlé a mon prof il ma dis de ne pas mettre une methode qui fait un return.
    Bah en principe c'est stupide, mais bon, j'imagine que vous avez pas encore vu le return en cours.

    Citation Envoyé par dandy-kun Voir le message
    j'ai fais ceci sa a l'air de fonctionner.
    Ah bon ? Moi avec ça si je tape autre chose que des chiffres, il me redemande rien du tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut
    c'est vrai qu'il ne me redemande pas , tu pourrai me donné des indices pour qu'il me redemande, merci.

  14. #14
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Pif_Paf_Pouf Voir le message
    Slt,
    Merci je v étudie ce que tu a écris.

    Voici un code qui marche tre bien pour calculer la moyenne:
    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
    package probleme;
     
    import java.util.Scanner;
     
    public class Prb_Main {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    //Prb01 fenetre=new Prb01();
     
     
    	    //
    	    System.out.print("------------***Calculer la moyenne***------------");
    	    //
    	    System.out.print("\n\nVeuillez entrez une note:\n");
    	    Scanner sc1 = new Scanner(System.in);
    		double note;
    		note=sc1.nextDouble();
    		//
    		System.out.print("\n\nVeuillez entrez le coeficient:\n");
    		Scanner sc2 = new Scanner(System.in);
    		double coefficient;
    		coefficient=sc2.nextDouble();
    		//
    		System.out.print("\n\nVeuillez entrez le nbre de note:\n");
    		Scanner sc3 = new Scanner(System.in);
    		double nbrDeNote;
    		nbrDeNote=sc3.nextDouble();
    		//
    		System.out.print("\n\nLa moyenne est de:\n");
    		double result=note*coefficient/nbrDeNote;
    		System.out.print(result);
     
     
    	}
     
    }
    J'espere t'avoir aidé,vu ta question j'ai fait le maximum,apres si tu veux pouvoir rentrer plusieurs notes avec plusieurs coef differents... dis le moi je t'aiderai si je peux.

    En esperant t'avoir aidé.
    Tchao.

  15. #15
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dandy-kun Voir le message
    c'est vrai qu'il ne me redemande pas , tu pourrai me donné des indices pour qu'il me redemande, merci.
    Ben il faut faire exactement ce que tu veux qu'il fasse :
    Tant que la note n'a pas été tapée correctement, il faut redemander à taper une note.

    Autrement dit, une boucle while, qui ne s'arrête que quand tu as détecté que la note a été bien tapée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut je crois que j'ai reussi
    sa a a l'air de bien tourné
    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
     
    package testexo;
     
    import java.util.Scanner;
     
    public class test {
    	int tab[];
    	int i = 0;
    	boolean entier;
     
    	public test(int x) {
    		tab = new int[x];
    	}
    	public int saisirNote(Scanner scanner) {
    		int a=0;
    		while(entier == false){
    		for (int i = 0; i < tab.length; i++) {
    		try {
    				System.out.println("sasir note");
    				a=scanner.nextInt();
    				entier=true;}
    			catch (Exception e) {
    				System.out.println("Please use valid input.");
    				scanner.next();
    			}
    			tab[i]=a;
    		}
    		}
    		return a;
    	}
    	public void affiche() {
    		for (int i = 0; i < tab.length; i++) {
    			System.out.print("note:|"+i+":"+tab[i]+"|");
    		}
    	}
    	public static void main(String[] args) {
    		test t1 = new test(2);
    		t1.saisirNote(new Scanner(System.in));
    		t1.affiche();
     
    	}
    }
    thelvin tu pourrai m'expliqué pourquoi il est plus utile d'utiliser return par rapport a void et comment utiliser toString stp. merci pour votre aide.

  17. #17
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dandy-kun Voir le message
    sa a a l'air de bien tourné
    Ah bon. Il se passe quoi si tu mets "bonjour 12" ?

    Citation Envoyé par dandy-kun Voir le message
    thelvin tu pourrai m'expliqué pourquoi il est plus utile d'utiliser return par rapport a void
    Pour faire ça :

    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
    private static int saisirUneNote(Scanner scanner) {
      try {
     
        return scanner.nextInt();	
     
      } catch(InputMismatchException e) {
        e.printStackTrace();
        scanner.next();
     
        // Je sais pas pourquoi je mets 0 mais je suis obligé de faire return
        // c'est intéressant il faudrait y réfléchir
        return 0;
      }
    }
     
    private static void saisirNotes() {
      Scanner scanner = new Scanner(System.in);
      for(int i = 0; i < notes.length; i++) {
        notes[i] = saisirUneNote(scanner);
      }
    }
    Une méthode qui lit un entier, une méthode qui utilise la méthode qui lit un entier.

    Citation Envoyé par dandy-kun Voir le message
    et comment utiliser toString stp.
    ????
    Quand tu as un objet dont tu veux une représentation en String, tu mets cet objet puis un . puis toString puis () et ça fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String string = unObjet.toString();
    System.out.println(string);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Points : 63
    Points
    63
    Par défaut
    j' ai utilisé le code que tu ma fourni
    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
     
    package testexo;
     
    import java.util.InputMismatchException;
    import java.util.Scanner;
     
    public class test5 {
    	private static int notes[];
    	public test5(){
    		notes=new int[2];
    	}
    	private static int saisirUneNote(Scanner scanner) {
    		  try {
     
    		    return scanner.nextInt();	
     
    		  } catch(InputMismatchException e) {
    		    e.printStackTrace();
    		    scanner.next();
     
    		    return 0;
    		  }
    		}
    		private static void saisirNotes() {
    		  Scanner scanner = new Scanner(System.in);
    		  for(int i = 0; i < notes.length; i++) {
    		    notes[i] = saisirUneNote(scanner);
    		  }
    		}
     
    	public static void main(String[] args) {
    		test5 t5 = new test5();
    		t5.saisirNotes();
    	}
    }
    mais j' ai une erreur quand je tape bonour 12
    bonjour 12
    java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at testexo.test5.saisirUneNote(test5.java:14)
    at testexo.test5.saisirNotes(test5.java:26)
    at testexo.test5.main(test5.java:32)

  19. #19
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    J'ai jamais dit que je te donnais la solution. Je ne fais qu'aider à la trouver. Les choses seront bien plus faciles avec cette méthode qui renvoie int.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Re Salut,

    Tt d'abord je te precise que je suis un debutant.
    Bien je vais essayer de t'aider en te fournissant un exemple de code qui te permet de rentrer plusieurs notes avec leurs coef,et qui demande a 'utilisateur apres chaque saisie de notes si tu veux en entrer de nouvelles.Si tu ne veux pas l'ensemble de tes données saisie(cad de tes notes),s'affichent alors.

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    package probleme;
     
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Scanner;
     
    public class Prb_Main {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    //Prb01 fenetre=new Prb01();
     
    		entrerN();
     
    	}
     
    	//Je declare une "liste",c'est ici que seront stockées les notes
    			static List lNote=new LinkedList();//lNote=liste de note
    			static List lCoef=new LinkedList();//lNote=liste de note
     
    			static //
    			boolean continuez=false;
     
     
    			public static void entrerN(){
    				continuez=true;
    				for(int i=0;continuez=true;i++){
    				//
    			System.out.print("------------***Calculer la moyenne***------------");
    			    //
    			System.out.print("\n\nVeuillez entrez une note:\n");
    			Scanner sc1 = new Scanner(System.in);
    			double note;
    			try{
    			note=sc1.nextDouble();
    			lNote.add(note);
    			entrerC();
    			System.out.println("Avez-vous d'autres notes a entrer?\nTapez 1 pour Oui et 0 pour Non");
    			Scanner scC = new Scanner(System.in);//C=confirmation
    			int confirmation=scC.nextInt();
    			if(confirmation==1){
    				continuez=true;
    			}else{
    				continuez=false;
    				for(int i1=0;i1 < lNote.size() && i1 < lCoef.size();i1++){
    					System.out.println("La note:Élément à l'index " + i1 + " = " +lNote.get(i1));
    					System.out.println("Le coefficient :Élément à l'index " + i1 + " = " + lCoef.get(i1));
    				}
    				break;
    			}
    			}catch(java.util.InputMismatchException e){
    				System.out.print("\n\n------------>ERREUR:Ce n'est pas un nombre!!<-----------------\n");
    				entrerN();
    			}
    				}
    			}
     
    public static void entrerC(){
    			//
    			System.out.print("\n\nVeuillez entrez le coeficient:\n");
    			Scanner sc2 = new Scanner(System.in);
    			double coefficient;
    			try{
    			coefficient=sc2.nextDouble();
    			lCoef.add(coefficient);
    			}catch(java.util.InputMismatchException e){
    				System.out.print("\n\n------------>ERREUR:Ce n'est pas un nombre!!<-----------------\n");
    				entrerC();
    			}
    			}
    EDIT:Finalement j'ai reussi a "l'edit " cette fois ci d... seul sait pk

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/03/2015, 11h17
  2. [AJAX] saisie automatique en rapport avec des données mysql
    Par redwire dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 01/10/2006, 11h45
  3. [XSLT]Convertir une chaîne en float, int etc ... avec XSL
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/05/2006, 10h12
  4. Réponses: 9
    Dernier message: 06/07/2005, 14h20
  5. tri obligatoire avec DISTINCT?
    Par Marseillais9 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 31/07/2003, 17h50

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