JavaRush /Java blogi /Random-UZ /Modulo bo'linish operatori
L2CCCP
Daraja

Modulo bo'linish operatori

Guruhda nashr etilgan
Moduli bo'linish operatori operator bo'lib mod, belgisi bilan belgilanadi %. Modulli bo'linish operatori - 1Birinchi operand ikkinchisiga bo'linganda, bu operator qoldiqni qaytaradi. modJava tilidagi " " operatori %nafaqat butun son (masalan: byte/int/short/long), balki suzuvchi nuqta (masalan: float/double) raqamlar\turlari bilan ham ishlaydi. Quyidagi dastur ushbu bayonot qanday ishlashini ko'rsatadi:
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);
	}
}
Ushbu dasturni ishga tushirish orqali siz quyidagi natijaga erishasiz:
i mod 10 = 7
d mod 10 = 7.300000000000001
Biz ushbu operator qanday ishlashini aniqladik, lekin uni qanday ishlatish kerak. Miqdoriga qarab so'zlarni o'zgartirish varianti sifatida. Men java o'yin emulyatorini ishlab chiquvchisi sifatida ishlaganim sababli, xabarlarda ko'p so'zlarning o'zgarishi men uchun juda muhim. Masalan:
  1. Siz allaqachon 1 kundan beri o'ynayapsiz .
  2. Siz allaqachon 2 kundan beri o'ynayapsiz .
  3. Siz allaqachon 5 kundan beri o'ynayapsiz .
Keling, og'ish dasturini yozamiz:
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;
		}
	}
}
Ushbu dasturni ishga tushirish orqali siz quyidagi natijaga erishasiz:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Hamma narsa kerakli darajada ishlaydi, lekin bitta natijada bir nechta og'ishlarni olishimiz kerak bo'lsa-chi? Masalan:
  1. Siz 1 kun 1 soat o'ynayapsiz .
  2. Siz 2 kun 4 soat o'ynayapsiz .
  3. Siz 5 kun 9 soat o'ynayapsiz .
Bizga kerak bo'lgan har bir so'z uchun qo'shimcha tushirish usulini yoza olmaymiz. Keling, shunday deklaratsiya dasturini yozamiz:
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;
		}
	}
}
Ushbu dasturni ishga tushirish orqali siz quyidagi natijaga erishasiz:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Bizning usulimiz umumiy " " deb ta'riflanganligi sababli public, uni istalgan paketdan osongina chaqirishingiz mumkin:
Mod.declension(count, type);
Hammasi shu, umid qilamanki, bu kimgadir foydali bo'ladi. Java tilini o'zlashtirishda omad tilaymiz.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION