JavaRush /Java блогу /Random-KY /Модулду бөлүү оператору
L2CCCP
Деңгээл

Модулду бөлүү оператору

Группада жарыяланган
Модулду бөлүү оператору modсимвол менен белгиленген оператор болуп саналат %. Модулдук бөлүмдүн оператору – 1Бул оператор биринчи операнд экинчиге бөлүнгөндө калганын кайтарат. modJava тorндеги " " оператору %бүтүн сандар менен гана эмес (мисалы: 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 тorн өздөштүрүүгө ийгorк.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION