JavaRush /จาวาบล็อก /Random-TH /เจ้าหน้าที่ควบคุมแผนกโมดูโล่
L2CCCP
ระดับ

เจ้าหน้าที่ควบคุมแผนกโมดูโล่

เผยแพร่ในกลุ่ม
ตัวดำเนินการหารแบบโมดูโลคือตัวดำเนินการซึ่ง modแสดงด้วยสัญลักษณ์ ตัวดำเนินการนี้จะคืนค่าส่วนที่เหลือเมื่อตัวถูกดำเนินการตัวแรกถูกหารด้วยตัวที่สอง ตัวดำเนินการ" " ใน Java ไม่เพียงทำงานได้กับจำนวนเต็ม (เช่น: ) เท่านั้น แต่ยังทำงานกับตัวเลขทศนิยม (เช่น: ) ตัวเลข\ประเภท ด้วย โปรแกรมด้านล่างแสดงวิธีการทำงานของคำสั่งนี้: %ตัวดำเนินการแบ่งโมดูโล่ - 1mod%byte/int/short/longfloat/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. คุณเล่นมาได้ 1 วันแล้ว
  2. คุณเล่นได้ 2 วันแล้ว
  3. คุณเล่นมา 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 วัน 1 ชั่วโมงแล้ว
  2. คุณเล่นมา 2 วัน 4 ชั่วโมงแล้ว
  3. คุณเล่นมา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
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION