JavaRush /مدونة جافا /Random-AR /مشغل قسم Modulo
L2CCCP
مستوى

مشغل قسم Modulo

نشرت في المجموعة
مشغل قسمة modulo هو المشغل mod، ويشار إليه بالرمز %. مشغل قسم Modulo - 1يقوم هذا العامل بإرجاع الباقي عندما يتم قسمة المعامل الأول على المعامل الثاني. عامل التشغيل mod" " %في Java لا يعمل فقط مع الأعداد الصحيحة (مثل: byte/int/short/long)، ولكن أيضًا مع الفاصلة العائمة (مثل: float/double) number\types. يوضح البرنامج التالي كيفية عمل هذا البيان:
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);
	}
}
وبتشغيل هذا البرنامج ستحصل على النتيجة التالية:
i mod 10 = 7
d mod 10 = 7.300000000000001
اكتشفنا كيف يعمل هذا المشغل، ولكن كيفية استخدامه. كخيار لتصريف الكلمات حسب الكمية. نظرًا لأنني أعمل كمطور لمحاكي ألعاب جافا، فمن المهم جدًا بالنسبة لي أن يتم تصريف العديد من الكلمات في الرسائل. على سبيل المثال:
  1. لقد كنت تلعب لمدة يوم واحد بالفعل .
  2. لقد كنت تلعب لمدة يومين بالفعل .
  3. لقد كنت تلعب لمدة 5 أيام بالفعل .
لنكتب برنامج الانحراف:
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;
		}
	}
}
وبتشغيل هذا البرنامج ستحصل على النتيجة التالية:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
كل شيء يعمل كما نحتاج، ولكن ماذا لو أردنا الحصول على عدة انحرافات في نتيجة واحدة؟ على سبيل المثال:
  1. لقد كنت تلعب لمدة يوم وساعة واحدة .
  2. لقد كنت تلعب لمدة يومين و 4 ساعات .
  3. لقد كنت تلعب لمدة 5 أيام و 9 ساعات .
لا يمكننا كتابة طريقة تصريف إضافية لكل كلمة نحتاجها. لنكتب برنامج الانحراف مثل هذا:
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;
		}
	}
}
وبتشغيل هذا البرنامج ستحصل على النتيجة التالية:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
بما أن طريقتنا موصوفة على أنها " public" عامة، يمكنك استدعاؤها بسهولة من أي حزمة:
Mod.declension(count, type);
هذا كل شيء، وآمل أن يكون هذا مفيدا لشخص ما. حظا سعيدا في إتقان لغة جافا.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION