Оператори тақсими модул операторест
mod
, ки бо аломати он ишора мешавад %
. Ин оператор боқимондаро ҳангоми тақсим кардани операнди аввал ба дуюм бармегардонад. Оператори mod
" " %
дар Java на танҳо бо ададҳои бутун (масалан: 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.
GO TO FULL VERSION