Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema con java

  1. #1

    Problema con java

    Ciao a tutti, avrei bisogno di un aiuto riguardo un problema con un programma di java.

    Ho creato due metodi e uno l'ho chiamato nel main solamente che il valore che io inserisco non lo modifica e mi ridà sempre il valore iniziale.
    Allego il codice
    codice:
    public class Programma {
     public static void main(String[] args) {
      int a=0;
      Metodi.Sceglifunzione(a);
      
      System.out.print(a);
      
     }
    }
    codice:
    import java.util.Scanner;
    public class Metodi {
     public static int Sceglifunzione(int a){
      
      Scanner tst = new Scanner(System.in);
      System.out.print("1 - Cifra messaggio");
      System.out.print("\n2 - Decifra messaggio");
      System.out.print("\n3 - Esci");
      System.out.print("\nScegli una funzione: ");
      
      a = tst.nextInt();
      
      return a;
     }
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Andre97123 Visualizza il messaggio
    il valore che io inserisco non lo modifica e mi ridà sempre il valore iniziale.
    Infatti NON puoi. Assegnare qualcos'altro ad un parametro NON cambia ciò che ha il "chiamante".

    Risposta "lunga": la variabile a nel main e il parametro a di Sceglifunzione sono due variabili DISTINTE. Quando il metodo viene invocato, il parametro riceve una COPIA del valore che ha il chiamante (la variabile a nel main).
    Per questo appunto, cambiare il valore del parametro non ha alcun effetto sull'altra variabile, quella nel main, che è tutta un'altra variabile.
    Ultima modifica di andbin; 08-01-2017 a 19:06
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.