1. La returndéclaration

Vous pensez avoir déjà tout appris sur les méthodes Java ? Quoi que vous pensiez savoir, vous n'en connaissez toujours pas la moitié.

Commençons par quelque chose de simple. Par exemple, Java a une instruction return qui vous permet de terminer instantanément la méthode qui l'appelle. Voici la déclaration :

return;

C'est simple : le mot solitaire returnsuivi d'un point-virgule. Dès que le programme exécute cette instruction, la méthode en cours se termine immédiatement et l'appel se poursuit.

Si returnest appelé dans la mainméthode, alors la mainméthode se terminera immédiatement, et avec elle tout le programme.

Exemple:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


La fill méthode remplit une partie du tableau passé avec value.
La partie du tableau à remplir est définie par les indices from et to.
Si from est inférieur 0ou to supérieur à la longueur du tableau, la méthode se termine immédiatement.

Le programme ci-dessus a une fillméthode qui remplit le tableau qui lui est passé avec value. Il ne remplit pas tout le tableau, seulement la partie spécifiée par les indices fromet to.

Au début de la fill méthode, les valeurs transmises sont vérifiées pour s'assurer qu'elles sont valides. Si fromest inférieur à 0 ou to supérieur à la longueur du tableau, la fillméthode se termine immédiatement (exécute une returninstruction).

Cette returndéclaration est utile : pratiquement toutes les méthodes de Java en ont une, et voici pourquoi.



2. Méthodes avec un résultat,void

Rappelez-vous que nous avons compris qu'il y a des déclarations et des expressions . Une expression, contrairement à une instruction, a une valeur qui peut être utilisée quelque part.

Et, en Java, les méthodes peuvent avoir une valeur . Et c'est une très bonne nouvelle : les méthodes sont non seulement capables de faire quelque chose en fonction des paramètres d'entrée, mais aussi, par exemple, d'évaluer quelque chose et de renvoyer le résultat du calcul .

Au fait, vous avez déjà rencontré de telles méthodes :

double delta = Math.abs(d1 - d2);
La abs()méthode renvoie un double
Scanner console = new Scanner(System.in);
int x = console.nextInt();

La nextInt()méthode retourne unint
String str = "Hello";
String s2 = str.toUpperCase();

La toUpperCase()méthode retourne unString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

La copyOf()méthode retourne unint[]

Chaque méthode ne peut renvoyer qu'une seule valeur d'un type prédéterminé. Le type de retour est déterminé lors de la déclaration de la méthode :

public static Type name(parameters)
{
  method body
}

name est le nom de la méthode, parameters est la liste des paramètres de la méthode et type est le type du résultat renvoyé par la méthode.

Pour les méthodes qui ne renvoient rien, il existe un type d'espace réservé spécial : void.

Êtes-vous en train d'écrire votre propre méthode et ne souhaitez-vous rien renvoyer à la méthode appelante ? Déclarez simplement le type de la méthode en tant que void, et le problème est résolu. Il existe également de nombreuses méthodes comme celle-ci en Java.


3. Renvoyer un résultat

Nous venons de comprendre comment déclarer une méthode qui renvoie le résultat d'un calcul, mais comment résultat-on ce résultat dans la méthode elle-même ?

La returndéclaration nous aide ici encore une fois. Passer un résultat d'une méthode ressemble à ceci :

return value;

returnest une instruction qui termine la méthode immédiatement. Et value est la valeur que la méthode renvoie à la méthode appelante lorsqu'elle se termine. Le type de valuedoit correspondre à celui typespécifié dans la déclaration de méthode.

Exemple 1. La méthode calcule le minimum de deux nombres :

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
La méthode renvoie le minimum de deux nombres.

Si a < b
retour a
Sinon
retourb

Exemple 2. La méthode duplique la chaîne qui lui est transmise nfois :

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
La méthode prend deux paramètres — une chaîne et le nombre de fois que la chaîne doit être répétée.
Une chaîne vide est créée pour le résultat futur.

Dans une boucle avec timesitérations, un espace et la strchaîne sont ajoutés à la resultchaîne.

La chaîne resultest renvoyée comme résultat de la méthode.

Exemple 3 : La méthode calcule le maximum de deux nombres à l'aide de l'opérateur ternaire :

int max(int a, int b)
{
   return (a > b ? a : b);
}
La méthode renvoie le maximum de deux nombres.

retour (si a > b, alors a, sinon b)