JavaRush /Blog Java /Random-MS /Pengendali bahagian modulo
L2CCCP
Tahap

Pengendali bahagian modulo

Diterbitkan dalam kumpulan
Pengendali bahagian modulo ialah operator mod, dilambangkan dengan simbol %. Operator bahagian modulo - 1Operator ini mengembalikan baki apabila operan pertama dibahagikan dengan yang kedua. Operator mod" " %di Jawa berfungsi bukan sahaja dengan integer (seperti: byte/int/short/long), tetapi juga dengan titik terapung (seperti: float/double) numbers\types. Program di bawah menggambarkan bagaimana pernyataan ini berfungsi:
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);
	}
}
Dengan menjalankan program ini, anda akan mendapat hasil berikut:
i mod 10 = 7
d mod 10 = 7.300000000000001
Kami mengetahui cara pengendali ini berfungsi, tetapi cara menggunakannya. Sebagai pilihan untuk mengubah perkataan bergantung kepada kuantiti. Memandangkan saya bekerja sebagai pembangun emulator permainan java, adalah sangat penting bagi saya bahawa banyak perkataan dalam mesej diubah. Cth:
  1. Anda telah bermain selama 1 hari .
  2. Anda telah bermain selama 2 hari .
  3. Anda telah bermain selama 5 hari .
Mari kita tulis program deklinasi:
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;
		}
	}
}
Dengan menjalankan program ini, anda akan mendapat hasil berikut:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Semuanya berfungsi seperti yang kita perlukan, tetapi bagaimana jika kita perlu mendapatkan beberapa deklinasi dalam satu hasil? Cth:
  1. Anda telah bermain selama 1 hari dan 1 jam .
  2. Anda telah bermain selama 2 hari dan 4 jam .
  3. Anda telah bermain selama 5 hari 9 jam .
Kami tidak boleh menulis kaedah pengurangan tambahan untuk setiap perkataan yang kami perlukan. Mari kita tulis program deklinasi seperti ini:
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;
		}
	}
}
Dengan menjalankan program ini, anda akan mendapat hasil berikut:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Memandangkan kaedah kami diterangkan sebagai " public" awam, anda boleh memanggilnya dengan mudah daripada mana-mana pakej:
Mod.declension(count, type);
Itu sahaja, saya harap ini akan berguna kepada seseorang. Semoga berjaya dalam penguasaan bahasa Jawa.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION