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 :

Classe Saisie (Scanner)


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2013
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 116
    Points : 55
    Points
    55
    Par défaut Classe Saisie (Scanner)
    Bonjour à tous,

    Débutant en java je m'exerce un petit peut mais je bute sur un point.


    J'ai un exercice à faire :

    Créer une classe Periode (jours1, jours2, mois1, mois2)
    creer une classe Saisie ( méthode scanner)
    et une classe UtilisePeriode (main)

    mais je n'arrive pas et ne trouve pas comment faire la classe Saisie avec la méthode Scanner afin que dans le main je puisse mettre par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Periode p1 = new Periode();
    p1.Saisie(); ==> saisie des 4 jours/mois 
    p1.affiche();
    Merci de vos réponse

  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
    Scanner n'est pas une méthode, c'est une classe.

    Nous ne pouvons pas deviner les termes que ton prof a utilisé pour faire son cours et vous donner cet exercice. Tu vas devoir tout nous dire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2013
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    L'énoncé :

    Soit une Classe Periode (jours1, jours2, mois1, mois2)

    Définir la classe correspondante et dotez cette classe de la méthode affiche(). Nous vous invitons à utiliser une classe Saisie.


    Ma classe Periode
    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
     
    public class Periode {
     
    	private int Jour1;
    	private int Mois1;
    	private int Jours2;
    	private int Mois2;
     
    	public Periode()
    	{
    		Jour1 = 0;
    		Mois1 = 0;
    		Jours2 = 0;   // le 0 doit être remplacer par une saisie clavier
    		Mois2 = 0;
     
    	}
     
    	public void affiche() 
     
    	{	
    		System.out.println("Jours du départ : "+Jour1);
    		System.out.println("Mois de départ : "+Mois1);
    		System.out.println("Jours d'arriver : "+Jours2);
    		System.out.println("Mois d'arriver : "+Mois2);	
    	}
    }

    Classe Saisie (qui est fausse j'en suis sûr)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import java.util.Scanner;
     
    public class Saisie {
     
     
    	public void  Scanner(){
    	 Scanner sc = new Scanner(System.in);	
    	 sc.nextInt();
         System.out.println();

    et la classe Main

    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
     
     
    public class UtilisePeriode {
     
     
    	public static void main(String args[]) 
     
    	{
     
    	Periode p = new Periode();
    	p.affiche();
     
    	}
     
    }

  4. #4
    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
    thelvin l'a dit, en effet Scanner est une classe et donc tu dois l'invoquer en début de code avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Scanner <NomDuScanner> = new Scanner(System.in)
    Ensuite tu l'utilise dans un bloc try-catch en spécifiant quelle variable aura la valeur rentrée par l'utilisateur, avec une assignation donc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try{
    	variable = <NomDuScanner>.nextInt(); //.nextInt() si c l'utilisateur doit rentrer un nombre entier, ou .nextString() si c'est une chaine de caractères, etc...
     
    	}catch (InputMismatchException e){
    		//Ici se trouvent les commandes à éxecuter si l'utilisateur entre une valeur erronée: un caractère à la place d'un nombre par exemple
    	}
    Le bloc try-catch est une méthode permettant d'anticiper les erreurs éventuelles, c'est très utile! Si tu veux en savoir plus, il y a des tutos là dessus sur Développez.net.

    Tu devras bien-sur faire la même chose pour toutes tes valeurs à demander à l'utilisateur. Toutes ces commandes, tu pourra les rentrer dans plusieurs blocs try-catch différents, mais l'idéal est de toutes les fourrer dans le même bloc! Il n'y aura aucun problème à cela.

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2013
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    Est-ce que c'est possible d'avoir un exemple ??

    Pour la saisie du Jours1 qui est de type INT svp

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825

  7. #7
    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 corv0 Voir le message
    Est-ce que c'est possible d'avoir un exemple ??

    Pour la saisie du Jours1 qui est de type INT svp
    Bien_sur!

    Le voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class main {
     
    	public static void main(String[] args){
    	int jours1 = ' '; //' ' c'est l'ensemble vide. Quand ta variable est initatialisée mais n'est égale à rien. C'est préférable de l'utiliser mais tu fais comme tu veux.
    	Scanner sc = new Scanner(System.in); // J'ai appelé mon Scanner sc. Tu peux utiliser le même Scanner pour toutes tes variables!
     
            try{
    					jours1 = sc.nextInt(); // .nextInt() car tu demandes un entier à ton utilisateur. Penses à ajouter des contraintes logiques pour que l'utilisateur ne définisse pas de jour comme 52 Décembre! Je t'aiderais si tu veux.
    					//Tu peux rajouter ici tes autres scan pour jours 2, mois1, mois2. Il est préférable que tu demandes à ton utilisateur de le faire avec des "System.out.println("Saississez le jour")" par exemple.
    				}catch (InputMismatchException e){
                                            // Commandes à insérer ici pour choisir quoi faire en cas d'exception.
    				}
    Mais attention si tu laisses ton programme tel quel, il se terminera sans rien dire. La variable à bien été enregistrée mais supprimée aussitôt par la fermeture du programme...

    Précision supplémentaire qui pourrait te servir:
    Si tu veux afficher tes résultats dans un "System.out.println()" Tu peux le faire ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Jour 1 définit en tant que: " + jours1)

  8. #8
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2013
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    Merci je vais tester tout de suite !

Discussions similaires

  1. Utilisation de la classe Scanner sous Eclipse
    Par cadabricadabra dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 24/02/2008, 11h30
  2. La Classe Scanner
    Par amazircool dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2007, 18h50
  3. Utilisation de la classe Scanner
    Par habasque dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2007, 15h38
  4. Utilisation de la classe Scanner sous Eclipse
    Par cadabricadabra dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/10/2006, 15h48
  5. Limites de la classe Scanner
    Par WuKoDLaK dans le forum Langage
    Réponses: 4
    Dernier message: 17/07/2006, 16h18

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