JavaRush /Java Blog /Random-JA /モジュロ除算演算子
L2CCCP
レベル 9

モジュロ除算演算子

Random-JA グループに公開済み
モジュロ除算演算子はmod、記号 で示される演算子です%モジュロ除算演算子 - 1この演算子は、最初のオペランドを 2 番目のオペランドで除算したときの剰余を返します。modJava の" "演算子は%、整数 (例: 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. すでに 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日と 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