modModulo bölmə operatoru simvolla işarələnən operatordur %. Bu operator birinci operand ikinciyə bölündükdə qalığı qaytarır. modJava-dakı " " operatoru %yalnız tam ədədlərlə (məsələn: byte/int/short/long) deyil, həm də üzən nöqtəli (məsələn: float/double) ədədlər\növləri ilə işləyir. Aşağıdakı proqram bu ifadənin necə işlədiyini göstərir:
packagecom.l2cccp.work;publicclassMod{publicstaticvoidmain(String args[]){int i =17;// Integersdouble d =17.3;// floating pointSystem.out.println("i mod 10 = "+ i %10);System.out.println("d mod 10 = "+ d %10);}}
Bu proqramı işlətməklə aşağıdakı nəticəni əldə edəcəksiniz:
i mod 10=7
d mod 10=7.300000000000001
Bu operatorun necə işlədiyini, lakin ondan necə istifadə edəcəyini anladıq. Kəmiyyətdən asılı olaraq sözləri düzəltmək üçün seçim kimi. Java oyun emulyatorunun tərtibatçısı kimi işlədiyim üçün mesajlarda çoxlu sözlərin flektiv olması mənim üçün çox vacibdir. Məsələn:
Artıq 1 gündür oynayırsınız .
Artıq 2 gündür oynayırsınız .
Siz 5 gündür oynayırsınız .
Tənqid proqramı yazaq:
packagecom.l2cccp.work;publicclassMod{publicstaticvoidmain(String args[]){int[] day=newint[]{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]));}publicstaticStringdeclension(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){case1:return one;case2:case3:case4:return two;default:return five;}}}
Bu proqramı işlətməklə aşağıdakı nəticəni əldə edəcəksiniz:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Hər şey ehtiyacımıza uyğun işləyir, amma bir nəticədə bir neçə sapma əldə etmək lazımdırsa? Məsələn:
1 gün 1 saatdır oynayırsınız .
2 gün 4 saatdır oynayırsınız .
Siz 5 gün 9 saat oynayırsınız .
Ehtiyacımız olan hər söz üçün əlavə azalma üsulu yaza bilmərik. Belə bir meyl proqramı yazaq:
packagecom.l2cccp.work;publicclassMod{publicstaticvoidmain(String args[]){int[] day =newint[]{1,2,5};int[] hour =newint[]{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"));}publicstaticStringdeclension(int count,String type){String one ="";String two ="";String five ="";if(type.equals("Days")){
one ="day";
two ="of the day";
five ="days";}elseif(type.equals("Hour")){
one ="hour";
two ="hours";
five ="hours";}if(count >100)
count %=100;if(count >20)
count %=10;switch(count){case1:return one;case2:case3:case4:return two;default:return five;}}}
Bu proqramı işlətməklə aşağıdakı nəticəni əldə edəcəksiniz:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Metodumuz ictimai " public" kimi təsvir olunduğuna görə, ona istənilən paketdən asanlıqla zəng edə bilərsiniz:
Mod.declension(count, type);
Hamısı budur, ümid edirəm kiməsə faydalı olacaq. Java dilini mənimsəməkdə uğurlar.
GO TO FULL VERSION