Moduli bo'linish operatori operator bo'lib
mod
, belgisi bilan belgilanadi %
. Birinchi operand ikkinchisiga bo'linganda, bu operator qoldiqni qaytaradi. mod
Java 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:
- Siz allaqachon 1 kundan beri o'ynayapsiz .
- Siz allaqachon 2 kundan beri o'ynayapsiz .
- Siz allaqachon 5 kundan beri o'ynayapsiz .
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:
- Siz 1 kun 1 soat o'ynayapsiz .
- Siz 2 kun 4 soat o'ynayapsiz .
- Siz 5 kun 9 soat o'ynayapsiz .
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.
GO TO FULL VERSION