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 :

Difference entre "return" et "system.out.printIn"


Sujet :

avec Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut Difference entre "return" et "system.out.printIn"
    Bonsoir tout le monde,

    Je me pose la question, quelle est la difference fondamentale entre et puisque les 2 commandes m'affichent un résultat??

    Merçi d'avance.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Alors :
    - printIn ça existe pas. Tu confonds avec println(). Un L minuscule.
    - return n'affiche rien du tout. Il fait sortir de la méthode en cours, avec comme valeur de retour ce que tu as indiqué dans le return. Et donc je me répète, rien dans tout cela n'affiche quoi que ce soit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    merçi de ta réponse,

    donc, si je disais que return capture une valeur et que a l'aide de println on peut l'afficher dans la console, ce serait vrai ou non??

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par ville_de_lumiere Voir le message
    donc, si je disais que return capture une valeur et que a l'aide de println on peut l'afficher dans la console, ce serait vrai ou non??
    "System.out.println" affiche sur la sortie standard. Si la sortie standard est la console, ceci affichera donc dans la console.

    Par contre pour le "return", je ne comprends pas ta définition. C'est juste le retour d'une méthode. Si tu as une méthode qui doit te renvoyer une valeur, c'est au moment du return qu'elle renverra une valeur à la méthode mère au dessus qui l'appelle.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    J'ai une derniere question, aprés je crois que je saisirai:
    Si au lieu de retourner la valeur a la methode mere, je me contentais de l'afficher avec printin?(en somme dans le meme endroit du code, je remplace return par printin)
    Ce serait quoi la difference??

    Pardon pour mon ignorance.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    La première différence c'est que tu aurais deux erreurs:

    printin ca n'existe pas
    et java va se plaindre que t'a déclaré que ta méthode retourne quelque chose, mais que tu ne retourne rien.

    C'est pas qu'il y aie ou pas de différence, c'est que ces deux concepts n'ont strictement rien à voir et je ne sais même pas à quel moment tu as pu imaginer qu'il y aie un lien.

  7. #7
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par ville_de_lumiere Voir le message
    J'ai une derniere question, aprés je crois que je saisirai:
    Si au lieu de retourner la valeur a la methode mere, je me contentais de l'afficher avec printin?(en somme dans le meme endroit du code, je remplace return par printin)
    Ce serait quoi la difference??

    Pardon pour mon ignorance.
    Ça n'a pas du tout le même but. Tout traitement fait au sein d'une méthode n'a pas pour but final d'être affiché par un println (c'est un L pas un I). Le return d'une méthode répond au mécanisme d'encapsulation qui permet ainsi de s'abstraire de la complexité d'un algo pour ne proposer qu'une méthode simple à l'utilisateur de la méthode.

    En gros si tu fais ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Lanceur {
      public static void main(String[] args) {
     
        double premiereValeur = 1;
        double deuxiemeValeur = 3;
     
        // fonction mégacomplexe
        double sommeDesDeux = premiereValeur + deuxiemeValeur;
        double moyenneValeur = sommeDesDeux/2;
     
        System.out.println("Ma moyenne est : " + moyenneValeur);
      }
    }
    Ton code est difficile à comprendre car tu mets tout ton algorithme directement au premier niveau. De plus, tu ne peux tester facilement ta classe.

    Alors que tu peux voir à travers cet exemple qu'il y a une méthode simple qui se dégage de ce code qui est la méthode "moyenne". Tu pourrais ainsi écrire un code comme celui-ci :
    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
    public class Lanceur {
      public static void main(String[] args) {
     
        double premiereValeur = 1;
        double deuxiemeValeur = 3;
     
        // fonction mégacomplexe encapsulée
        double moyenneValeur = moyenne(premiereValeur, deuxiemeValeur);
     
        System.out.println("Ma moyenne est : " + moyenne);
      }
     
      public double moyenne(double premiereValeur, double deuxiemeValeur) {
        double sommeDesDeux = premiereValeur + deuxiemeValeur;
        double moyenneValeur = sommeDesDeux/2;
        return moyenneValeur;
      }
    }
    Dans ce cas, ton code est mieux séparé et il t'est aisé de faire un test unitaire sur la fonction moyenne.

    Après comme je l'ai dis là mon exemple utilisait la fonction println pour afficher quelque chose mais ce n'est pas forcément le cas du tout. J'aurais pu écrire par exemple le résultat dans un fichier ou faire une interface graphique affichant la valeur. Dans ce cas, on aurait encore mieux vu qu'il n'y a pas de rapport entre l'utilisation de println ou de return.

    Dans tout les cas, je pense que tu devrais lire quelques tutoriels de base sur Java pour t'éclairer tout ça car je pense que tu te mélanges un peu.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    oui c'est sur, je n'en suis qu'au début.
    Mais je crois qu'en fait (si je ne dis pas d'anneries) c'est que grace au return, qui fait partie d'une methode, donc utilisable autant de fois que l'on a besoin, tant que certaines conditions sont réspecté comme le type,nous evite de retaper du texte inutilement.
    Et aussi que cette methode est si je peux dire comme ça, dynamique, en fonction de ce qu'on lui donne elle retourne le resultat adéquat??

    c'est bien ça??

  9. #9
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Oui, c'est plus ou moins ça.

    Ce serait peut-être utile de rappeler que toutes les variables déclarées dans une méthode (ainsi que le résultat des calculs effectués) disparaissent juste après l'exécution de cette même méthode.
    Tu peux faire tout un tas de calculs compliqués et juste afficher le résultat, qui sera perdu par la suite. Mais tu voudrais peut-être te servir de ce résultat ailleurs dans ton code, par exemple pour initialiser une variable et t'en servir comme condition d'un test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int i;
    ...
     
    i = résultat du calcul effectué par une méthode qui retourne un int;
     
    if (i >= 10) {
      // faire quelque chose par la suite dans le programme
    } else {
      // faire autre chose par la suite dans le programme
    }

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Citation Envoyé par ville_de_lumiere Voir le message
    Mais je crois qu'en fait (si je ne dis pas d'anneries) c'est que grace au return, qui fait partie d'une methode, donc utilisable autant de fois que l'on a besoin, tant que certaines conditions sont réspecté comme le type,nous evite de retaper du texte inutilement.
    Oui enfin c'est la méthode, qui évite de retaper du texte inutilement. return n'est qu'une nécessité pour qu'il soit possible de faire des méthodes qui renvoient un résultat.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    donc, si je ne dis pas n'importe quoi, ces meme methodes permettent de serialiser des resultats??

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oui est non

    qu'est-ce que tu appelle "sérialiser les résultat".

    Le concept est pas bien compliqué: la méthode te retourne une valeur. Et toi, qui a appelé la méthode, tu en fais ce que tu veux. Le rôle du return sert uniquement à marquer quel est le résultat de la méthode et arrêter immédiatement le traitement de la méthode.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    j'entends par serialiser des résultats, par exemple je cree un jeu et je veux que quand je quitte le jeux, j'enregistre un score et qu'a mon retour, je continue la ou je me suis arrété.
    C'est une serialisation grace au concept de methode ou j'affabule??
    car mishuyina, m'a parlé de la possibilité de conserver des resultats aprés une execution

    Sinon pour le return je pense avoir saisi

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le concept de méthode n'a rien à voir là dedans. Si tu veux préserver l'état d'un jeu, il faut sauver l'état des différentes objet formant ton jeu et restaurer cet état.

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    d'accord, je melange tout la et c'est le bazar, je marque comme resolu car ma question de depart a propos du return est resolu!
    merçi a vous tous,

  16. #16
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par ville_de_lumiere Voir le message
    car mishuyina, m'a parlé de la possibilité de conserver des resultats aprés une execution
    Juste une petite précision: je parlais de conserver le résultat d'une méthode après l'exécution de cette méthode et pas après la fin du programme.
    Pour garder l'analogie avec le jeu: tu pourrais par exemple passer au niveau supérieur du jeu si tu as obtenu le nombre de points nécessaires ou rejouer le même niveau si ce n'est pas le cas.
    Conserver l'état d'un jeu c'est plus complexe et pas tout à fait à la portée de main d'un débutant, comme déjà expliqué par tchize_.

  17. #17
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    merçi pour la précision, c'est clair que je n'en suis qu'au début.
    Sinon, j'ai remarqué quelque chose d'etrange:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("/n")
    un saut de ligne entouré de guillemets, qui devrait normalement donner un " /n" brut mais qui donne un vrai saut de ligne, comment c'est possible??

  18. #18
    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
    1) /n n'est pas un saut de ligne, mais le caractère / suivi du caractère n (c'est \n le saut de ligne)
    2) println(String) est une méthode qui envoie vers la sortie standard (par défaut la console), la chaîne passée en paramètre, et qui ajoute un saut de ligne à la fin

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("/n");
    System.out.println("toto");
    affiche dans la console (le <saut de ligne> ne s'affiche pas, c'est juste pour indiquer où il y aura des sauts de ligne dans la console) :

    /n<saut de ligne>
    toto<saut de ligne>
    
    
    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.

  19. #19
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par ville_de_lumiere Voir le message

    un saut de ligne entouré de guillemets, qui devrait normalement donner un " /n" brut mais qui donne un vrai saut de ligne, comment c'est possible??
    Il existe également une méthode System.out.print() http://docs.oracle.com/javase/tutori...ormatting.html
    C'est beau d'être débutant, il y a tout un tas de choses à découvrir!

  20. #20
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 48
    Par défaut
    C'est la raison pour laquelle je n'apprends rien

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

Discussions similaires

  1. Difference entre [Simple quote] & [Double quote]
    Par Invité dans le forum SQL
    Réponses: 3
    Dernier message: 24/07/2013, 12h24
  2. Réponses: 3
    Dernier message: 14/06/2010, 07h40
  3. la difference entre date systeme et date
    Par soumia_adr dans le forum DB2
    Réponses: 1
    Dernier message: 09/04/2009, 15h26

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