百分比符号(%)是什么意思?

时间:2017-08-19 11:56:33

标签: java

我在数组参数中遇到了一些包含%符号的代码。

它是什么意思,它是如何运作的?

示例:

String[] name = { "a", "b", "c", "d" };

System.out.println(name[4 % name.length]);
System.out.println(name[7 % name.length]);
System.out.println(name[50 % name.length]);

输出:

a
d
c

3 个答案:

答案 0 :(得分:9)

那是remainder operator,它给出了整数除法的余数。例如,3 % 21,因为3 / 2的其余部分为1

在那里使用它来保持范围内的值:如果name.length小于4,7或50,则% name.length对这些值的结果是0范围内的值{{ 1}}到name.length - 1

因此,即使数字(4,7或50)超出范围,代码也会可靠地从数组中选择条目。 4 % 407 % 4350 % 42。所有这些都是name的有效数组索引。

完整示例(live copy):

class Example
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String[] name = { "a" , "b" , "c" , "d"};
        int n;
        n = 4 % name.length;
        System.out.println(" 4 % 4 is " + n + ": " + name[n]);
        n = 7 % name.length;
        System.out.println(" 7 % 4 is " + n + ": " + name[n]);
        n = 50 % name.length;
        System.out.println("50 % 4 is " + n + ": " + name[n]);
    }
}

输出:

 4 % 4 is 0: a
 7 % 4 is 3: d
50 % 4 is 2: c

答案 1 :(得分:1)

divs是模运算符。它返回整数除法余数。在询问之前,试着查看这些。此问题之前已经多次回答:https://stackoverflow.com/a/90247/5516452

答案 2 :(得分:0)

简单:这是模数,或者确切地说是余数运算符。

这与数组本身无关。它只是用于计算数组索引的值的数值计算。