JavaRush /Java-Blog /Random-DE /Modulo-Divisionsoperator
L2CCCP
Level 9

Modulo-Divisionsoperator

Veröffentlicht in der Gruppe Random-DE
Der Modulo-Divisionsoperator ist der Operator mod, der mit dem Symbol gekennzeichnet ist %. Modulo-Divisionsoperator - 1Dieser Operator gibt den Rest zurück, wenn der erste Operand durch den zweiten geteilt wird. modDer „ “ -Operator %in Java funktioniert nicht nur mit Ganzzahlen (z. B. byte/int/short/long:), sondern auch mit Gleitkommazahlen (z. B. float/double:). Das folgende Programm veranschaulicht, wie diese Anweisung funktioniert:
package com.l2cccp.work;

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

		System.out.println("i mod 10 = " + i % 10);
		System.out.println("d mod 10 = " + d % 10);
	}
}
Wenn Sie dieses Programm ausführen, erhalten Sie das folgende Ergebnis:
i mod 10 = 7
d mod 10 = 7.300000000000001
Wir haben herausgefunden, wie dieser Operator funktioniert, aber wie man ihn verwendet. Als Option zur mengenabhängigen Flexion von Wörtern. Da ich als Entwickler eines Java-Spielemulators arbeite, ist es für mich sehr wichtig, dass viele Wörter in Nachrichten flektiert werden. Z.B:
  1. Du spielst schon seit einem Tag .
  2. Du spielst schon seit 2 Tagen .
  3. Du spielst schon seit 5 Tagen .
Schreiben wir ein Deklinationsprogramm:
package com.l2cccp.work;

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

		System.out.println(„Du spielst schon“ + day[0] + " " + declension(day[0]));
		System.out.println(„Du spielst schon“ + day[1] + " " + declension(day[1]));
		System.out.println(„Du spielst schon“ + day[2] + " " + declension(day[2]));
	}

	public static String declension(int count)
	{
		String one = "Tag";
		String two = "des Tages";
		String five = "Tage";

		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;
		}
	}
}
Wenn Sie dieses Programm ausführen, erhalten Sie das folgende Ergebnis:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Alles funktioniert wie gewünscht, aber was ist, wenn wir mehrere Deklinationen in einem Ergebnis erhalten müssen? Z.B:
  1. Du spielst seit 1 Tag und 1 Stunde .
  2. Du spielst seit 2 Tagen und 4 Stunden .
  3. Du spielst seit 5 Tagen und 9 Stunden .
Wir können nicht für jedes Wort, das wir brauchen, eine zusätzliche Deklinationsmethode schreiben. Schreiben wir ein Deklinationsprogramm wie dieses:
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(„Du spielst schon“ + day[0] + " " + declension(day[0], "Days") + " Und " + hour[0] + " " + declension(hour[0], "Hour"));
		System.out.println(„Du spielst schon“ + day[1] + " " + declension(day[1], "Days") + " Und " + hour[1] + " " + declension(hour[1], "Hour"));
		System.out.println(„Du spielst schon“ + day[2] + " " + declension(day[2], "Days") + " Und " + 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 = "Tag";
			two = "des Tages";
			five = "Tage";
		}
		else if(type.equals("Hour"))
		{
			one = "Stunde";
			two = "Std";
			five = "Std";
		}

		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;
		}
	}
}
Wenn Sie dieses Programm ausführen, erhalten Sie das folgende Ergebnis:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Da unsere Methode als öffentliches „ public“ beschrieben wird, können Sie sie problemlos von jedem Paket aus aufrufen:
Mod.declension(count, type);
Das ist alles, ich hoffe, dass dies für jemanden nützlich sein wird. Viel Glück beim Beherrschen der Java-Sprache.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION