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

Java Discussion :

Passing Primitive Data Values


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 39
    Points
    39
    Par défaut Passing Primitive Data Values
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.beans;
     
    public class testab {
    	public static void main(String[] args) {
    		int i = 0;
    		addTwo(i++);
    		System.out.println(i);
    		}
    		static void addTwo(int i) {
    		i += 2;
    		}
    		}
    svp qui peut m'expliquer pouquoi le code affiche 1 comme résultat

  2. #2
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut

    Ce code affiche 1, parce que Java passe les paramètres par valeurs.

    Plus précisement, la variable i dans la fonction main et la variable i dans la fonction addTwo ne sont pas les mêmes. (Pour éviter les confusions je vais les appelé iMain et iAdd)
    Quand tu appelle la fonction addTwo avec iMain comme paramètre. Java va lire la valeur de iMain, et créer un variable iAdd (qui n'existera que le temps de l'execution de la fonction addTwo) qui aura comme valeur initiale la valeur de iMain (à l'instant de l'appelle de la fonction).
    Donc si addTwo modifie la valeur de iAdd, cela ne modifie pas iMain.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

Discussions similaires

  1. pass input Hidden value comme variable dans HREF
    Par windows2056 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/10/2013, 13h51
  2. [Flex4] Passing callresponder data into an ArrayCollection
    Par roestigraben dans le forum Flex
    Réponses: 0
    Dernier message: 18/07/2011, 12h28
  3. Ou est passé mon data report ?
    Par Attila54 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/12/2010, 15h03
  4. Mémoriser une "Data.Value" d'un DataGridView
    Par Jean Picholle dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/07/2009, 15h51
  5. Réponses: 1
    Dernier message: 12/11/2007, 15h48

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