JavaRush /Java блогы /Random-KK /Модульді бөлу операторы
L2CCCP
Деңгей

Модульді бөлу операторы

Топта жарияланған
modМодульді бөлу операторы таңбамен белгіленген оператор болып табылады %. Модульді бөлу операторы – 1Бұл оператор бірінші операнд екіншіге бөлінгенде қалдықты қайтарады. modJava тіліндегі " " операторы %тек бүтін санмен (мысалы: 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
Біз бұл оператордың қалай жұмыс істейтінін, бірақ оны қалай пайдалану керектігін түсіндік. Сөздердің санына қарай әсер ету мүмкіндігі ретінде. Мен java ойын эмуляторының әзірлеушісі болып жұмыс істейтіндіктен, мен үшін хабарламалардағы көптеген сөздердің флеш болуы өте маңызды. Мысалыға:
  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 сағат ойнадыңыз .
Біз әрбір қажет сөзге қосымша септеу әдісін жаза алмаймыз. Төмендегідей ауытқу программасын жазайық:

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);
Барлығы осы, бұл біреуге пайдалы болады деп үміттенемін. Java тілін меңгеруде сәттілік тілейміз.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION