Les différences entre le Système.out.println() et revenir en Java
J'essaie de comprendre la différence et les avantages de l'utilisation de System.out.println()
vs return blah
dans une méthode.
Il semble que System.out.println()
est utilisé pour afficher des informations statiques, et return
est une valeur retournée par la méthode. Pourtant, je vais voir des exemples comme celui ci-dessous, où une fonction est utilisée dans le System.out.println()
déclaration
System.out.println(name.substring(1, 3));
Quand est-il d'utiliser System.out.println()
et return
. Est-ce que return
peut être utilisé par un autre morceau de code plus tard, alors que System.out.println()
ne peut pas?
- Que vous comparez des pommes de terre avec les rayons solaires, et vous obtenez violet licornes volantes autour de stonehenge en attente pour un météore ramener les dinosaures.
- J'avais
return blah
si possible. Cela signifie que vous pouvez faire ce que vous voulez avec la valeur. printlin() est fixe et vous ne pouvez pas toujours à imprimer. - Je tiens à décourager les utilisateurs de downvoting cette question. Cela peut paraître stupide, mais j'ai appris java débutants et pour ce niveau de connaissance de ce qui est réel d'un bien mis en avant la question.
- Alors que je n'ai pas downvote et d'accord avec vous qu'il soit bien écrit question, l'info-bulle pour downvoting dit "Cette question ne pas montrer tout l'effort de la recherche, il n'est pas clair ou pas utile.". Je crois que ça tombe un peu à "ne pas montrer tout l'effort de la recherche", parce que googler "java syso" et "java retour" permettrait de répondre à cette question assez rapidement.
- Si vous ne l'avez pas déjà fait, merci de lire ma réponse. Le problème ne réside pas dans la compréhension de ce que ces choses-là, mais quand les utiliser. Les règles que nous prenons tous pour acquis ne sont pas aussi évident dans le trivial programmes.
- Je l'ai lu (et c'est vraiment une bonne réponse btw. +1 de moi). Mais vous avez raison, les choses semblent de plus en plus trivial au fil du temps et nous devons le respecter qu'il pourrait ne pas être trivial à tous.
Vous devez vous connecter pour publier un commentaire.
Votre dernière phrase est effectivement correcte, mais la distinction entre ces deux opérations est ÉNORME, donc je souhaite apporter un plus en profondeur l'explication de leurs différences.
La Différence:
return
est une instruction qui contrôle le flux de votre programme à l'exécution. C'est une partie fondamentale de la syntaxe Java. Il indique à l'ordinateur qu'une partie de votre code à exécuter, et les valeurs à utiliser lors de l'exécution. Lorsque vous renvoyer une valeur, vous dites "Le résultat de l'appel de cette méthode est XXXX" (avec "XXXX" étant la valeur de retour).System.out.println
n'est pas utilisé pour contrôler la façon dont votre programme s'exécute. C'est un simple moyen d'informer l'utilisateur de ce qui se passe à l'intérieur de votre programme.System.out.println
(syso pour faire court) peut imprimer toute information à la console; il n'a pas d'importance si c'est une variable, une expression, ou le résultat d'un appel de méthode. Il n'y a pas de limitation à "statique" des données.Regardons tous les deux en action:
Cela signifie que wen nous appelons
addInts
dans notre programme, il va évaluer à la somme de ses arguments. Donc quand on écritaddInts(3, 7)
, c'est le même comme s'il n'avait simplement écrit3 + 7
ou10
dans notre code source. Rien n'est imprimé sur la console; tout ce que nous avons fait, c'est donner à notre programme un moyen de calculer quelque chose.Cependant, les calculs que nous pourrions faire sont finalement inutiles si elles ne font que s'asseoir à l'intérieur de l'ordinateur, nous avons donc besoin d'un moyen d'afficher cette information à l'utilisateur. Entrez syso:
La
addInts
méthode est appelée et renvoie 38. Cette valeur est placée quelque part dans la mémoire de l'ordinateur tels que notre programme peut le trouver.Prochaine, syso prend la valeur (38) et l'imprime à la console, permettant à l'utilisateur de savoir quelle valeur a été calculée. Rien de nouveau, c'est calculée à partir de cette procédure, et notre programme continue à l'instruction suivante.
Alors, qui dois-je utiliser?
Dans des programmes simples, vous avez si peu de valeurs de garder une trace de cela, il peut être tentant de simplement imprimer tout ce que vous voulez savoir où vous calculer. Par exemple, si vous écrivez un programme pour faire vos devoirs d'algèbre (j'y ai été) et vous avez écrit une méthode pour résoudre l'équation du second degré, il peut être tentant de structure comme ceci:
Cependant, cette approche devient rapidement une très mauvaise idée si vous voulez faire de votre programme un peu plus complexe. Disons un problème, il est nécessaire de résoudre l'équation quadratique, puis utiliser le résultat de ce calcul pour calculer le volume d'un cylindre. Dans l'exemple ci-dessus, nous ne pouvons pas le faire: après vidage de la valeur de
result
à la console via syso, il disparaît lorsque l'quadSolve
méthode se termine. Il ferait beaucoup plus de sens si nous avonsquadSolve
retourresult
et de laisser le "caller" (l'endroitquadSolve
été appelé à partir de) faire face à la manipulation de cette valeur. C'est beaucoup plus souple conception qui nous permet de réaliser nos programmes beaucoup plus compliqué avec une relative facilité. Cette augmentation de la flexibilité et de la modularité est vraiment ce qui rend les méthodes utiles. Ici est la mise en œuvre:J'espère que cela efface les choses. N'hésitez pas à demander si vous avez besoin de précisions supplémentaires.
Un
method
revient souvent unvalue
(ce qui est fait à l'aide de lareturn
déclaration).Informations peuvent être "imprimé" à un flux de sortie par
System.out.println()
références.Ils tous les deux ont leurs usages ... qui d'habitude sont orthogonaux.
Ils ont très peu à voir les uns avec les autres.
System.out.println()
est utilisé pour la sortie des chaînes à une console/terminal. Doncdoit la sortie de la chaîne de
"Hello world"
return
est un énoncé en Java pour revenir au code qui a appelé la méthode et de renvoyer une valeur.