JavaRush /Blog Java /Random-VI /Toán tử chia Modulo
L2CCCP
Mức độ

Toán tử chia Modulo

Xuất bản trong nhóm
Toán tử chia modulo là toán tử mod, được ký hiệu bằng ký hiệu %. Toán tử chia Modulo - 1Toán tử này trả về số dư khi chia toán hạng đầu tiên cho toán hạng thứ hai. Toán tử mod" " %trong Java không chỉ hoạt động với số nguyên (chẳng hạn như: byte/int/short/long), mà còn với các số\kiểu dấu phẩy động (chẳng hạn như: float/double). Chương trình dưới đây minh họa cách hoạt động của câu lệnh này:
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);
	}
}
Bằng cách chạy chương trình này, bạn sẽ nhận được kết quả sau:
i mod 10 = 7
d mod 10 = 7.300000000000001
Chúng tôi đã tìm ra cách hoạt động của toán tử này nhưng cách sử dụng nó. Là một lựa chọn để thay đổi từ tùy theo số lượng. Vì tôi làm việc với tư cách là nhà phát triển trình giả lập trò chơi java nên điều rất quan trọng đối với tôi là nhiều từ trong tin nhắn bị biến cách. Ví dụ:
  1. Bạn đã chơi được 1 ngày rồi .
  2. Bạn đã chơi được 2 ngày rồi .
  3. Bạn đã chơi được 5 ngày .
Hãy viết một chương trình từ chối:
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;
		}
	}
}
Bằng cách chạy chương trình này, bạn sẽ nhận được kết quả sau:
Вы играете уже 1 день
Вы играете уже 2 дня
Вы играете уже 5 дней
Mọi thứ đều hoạt động như chúng ta cần, nhưng nếu chúng ta cần nhận được nhiều độ lệch trong một kết quả thì sao? Ví dụ:
  1. Bạn đã chơi được 1 ngày 1 giờ .
  2. Bạn đã chơi được 2 ngày 4 giờ .
  3. Bạn đã chơi được 5 ngày 9 giờ .
Chúng ta không thể viết thêm một phương pháp biến cách cho mỗi từ chúng ta cần. Hãy viết một chương trình suy giảm như thế này:
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;
		}
	}
}
Bằng cách chạy chương trình này, bạn sẽ nhận được kết quả sau:
Вы играете уже 1 день и 1 час
Вы играете уже 2 дня и 4 часа
Вы играете уже 5 дней и 9 часов
Vì phương thức của chúng tôi được mô tả là " " công khai publicnên bạn có thể dễ dàng gọi nó từ bất kỳ gói nào:
Mod.declension(count, type);
Đó là tất cả, tôi hy vọng điều này sẽ hữu ích cho ai đó. Chúc may mắn trong việc thành thạo ngôn ngữ Java.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION