关于Java:百分比符号(%)是什么意思?

What does the percentage symbol (%) mean?

本问题已经有最佳答案,请猛点这里访问。

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

这是什么意思,如何工作?

示例:

1
2
3
4
5
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]);

输出:

1
2
3
a
d
c


这是余数运算符,它给出整数除法的余数。例如,3 % 21,因为3 / 2的其余部分是1

在那里使用它来保持范围内的值:如果name.length小于4、7或50,则这些值上的% name.length结果是一个在0

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

的有效数组索引。

完整示例(活动副本):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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]);
    }
}

输出:

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


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

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