JavaRush /Blog Java /Random-FR /Opérateur de division Modulo
L2CCCP
Niveau 9

Opérateur de division Modulo

Publié dans le groupe Random-FR
L'opérateur de division modulo est l'opérateur mod, désigné par le symbole %. Opérateur de division Modulo - 1Cet opérateur renvoie le reste lorsque le premier opérande est divisé par le second. L' opérateur mod" " %en Java fonctionne non seulement avec des nombres entiers (tels que : byte/int/short/long), mais également avec des nombres à virgule flottante (tels que : float/double) et des types. Le programme ci-dessous illustre le fonctionnement de cette instruction :
package com.l2cccp.work;

public class Mod
{
	public static void main(String args[])
	{
		int i = 17; // Integers
		double d = 17.3; // floating point

		System.out.println("i mod 10 = " + i % 10);
		System.out.println("d mod 10 = " + d % 10);
	}
}
En exécutant ce programme, vous obtiendrez le résultat suivant :
i mod 10 = 7
d mod 10 = 7.300000000000001
Nous avons compris comment fonctionne cet opérateur, mais comment l'utiliser. Comme option pour infléchir les mots en fonction de la quantité. Depuis que je travaille en tant que développeur d'un émulateur de jeu Java, il est très important pour moi que de nombreux mots dans les messages soient fléchis. Par exemple:
  1. Vous jouez déjà depuis 1 jour .
  2. Cela fait déjà 2 jours que vous jouez .
  3. Cela fait déjà 5 jours que vous jouez .
Écrivons un programme de déclinaison :
package com.l2cccp.work;

public class Mod
{
	public static void main(String args[])
	{
		int[] day= new int[] { 1, 2, 5 };

		System.out.println("You're already playing" + day[0] + " " + declension(day[0]));
		System.out.println("You're already playing" + day[1] + " " + declension(day[1]));
		System.out.println("You're already playing" + day[2] + " " + declension(day[2]));
	}

	public static String declension(int count)
	{
		String one = "day";
		String two = "of the day";
		String five = "days";

		if(count > 100)
			count %= 100;

		if(count > 20)
			count %= 10;

		switch(count)
		{
			case 1:
				return one;
			case 2:
			case 3:
			case 4:
				return two;
			default:
				return five;
		}
	}
}
En exécutant ce programme, vous obtiendrez le résultat suivant :
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Tout fonctionne comme nous le souhaitons, mais que se passe-t-il si nous devons obtenir plusieurs déclinaisons en un seul résultat ? Par exemple:
  1. Vous jouez depuis 1 jour et 1 heure .
  2. Vous jouez depuis 2 jours et 4 heures .
  3. Vous jouez depuis 5 jours 9 heures .
Nous ne pouvons pas écrire une méthode de déclinaison supplémentaire pour chaque mot dont nous avons besoin. Écrivons un programme de déclinaison comme celui-ci :
package com.l2cccp.work;

public class Mod
{
	public static void main(String args[])
	{
		int[] day = new int[] { 1, 2, 5 };
		int[] hour = new int[] { 1, 4, 9 };

		System.out.println("You're already playing" + day[0] + " " + declension(day[0], "Days") + " And " + hour[0] + " " + declension(hour[0], "Hour"));
		System.out.println("You're already playing" + day[1] + " " + declension(day[1], "Days") + " And " + hour[1] + " " + declension(hour[1], "Hour"));
		System.out.println("You're already playing" + day[2] + " " + declension(day[2], "Days") + " And " + hour[2] + " " + declension(hour[2], "Hour"));
	}

	public static String declension(int count, String type)
	{
		String one = "";
		String two = "";
		String five = "";

		if(type.equals("Days"))
		{
			one = "day";
			two = "of the day";
			five = "days";
		}
		else if(type.equals("Hour"))
		{
			one = "hour";
			two = "hours";
			five = "hours";
		}

		if(count > 100)
			count %= 100;

		if(count > 20)
			count %= 10;

		switch(count)
		{
			case 1:
				return one;
			case 2:
			case 3:
			case 4:
				return two;
			default:
				return five;
		}
	}
}
En exécutant ce programme, vous obtiendrez le résultat suivant :
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Puisque notre méthode est décrite comme une méthode publique "public ", vous pouvez facilement l'appeler depuis n'importe quel package :
Mod.declension(count, type);
C'est tout, j'espère que cela sera utile à quelqu'un. Bonne chance pour maîtriser le langage Java.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION