Модулду бөлүү оператору
mod
символ менен белгиленген оператор болуп саналат %
. Бул оператор биринчи операнд экинчиге бөлүнгөндө калганын кайтарат. mod
Java т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 күндөн бери ойноп жатасыз .
- Сиз 2 күндөн бери ойноп жатасыз .
- Сиз 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 саат ойноп жатасыз .
- Сиз 2 күн 4 саат ойноп жатасыз .
- Сиз 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к.
GO TO FULL VERSION