JavaRush /جاوا بلاگ /Random-SD /ماڊل ڊويزن آپريٽر
L2CCCP
سطح

ماڊل ڊويزن آپريٽر

گروپ ۾ شايع ٿيل
ماڊل ڊويزن آپريٽر آپريٽر آهي mod، جنهن کي علامت سان ظاهر ڪيو ويو آهي %. ماڊل ڊويزن آپريٽر - 1هي آپريٽر باقي واپس ڏئي ٿو جڏهن پهرين آپرينڊ کي سيڪنڊ سان ورهايو ويندو آهي. modجاوا ۾ " " آپريٽر %ڪم ڪري ٿو نه رڳو انٽيجر سان (جهڙوڪ: byte/int/short/long)، پر ان سان گڏ سچل پوائنٽ (جهڙوڪ: float/double) انگن جي قسمن سان. هيٺ ڏنل پروگرام بيان ڪري ٿو ته هي بيان ڪيئن ڪم ڪري ٿو:
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. توهان اڳ ۾ ئي 1 ڏينهن کان راند ڪري رهيا آهيو .
  2. توھان 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. توهان 1 ڏينهن ۽ 1 ڪلاڪ لاءِ کيڏي رهيا آهيو .
  2. توهان 2 ڏينهن ۽ 4 ڪلاڪ کيڏي رهيا آهيو .
  3. توهان 5 ڏينهن 9 ڪلاڪ کيڏي رهيا آهيو .
اسان هر لفظ جي ضرورت لاءِ اضافي رد ڪرڻ جو طريقو نٿا لکي سگهون. اچو ته هن طرح هڪ declination پروگرام لکون:
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