我遇到了一些代码,其中包含数组参数中的%
符号。
这是什么意思,它是如何工作的?
例:
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 % 2
1
,因为3 / 2
的其余部分是1
。
它在那里用于将值保持在范围内:如果name.length
小于 4、7 或 50,则对这些值进行% name.length
的结果是在0
到name.length - 1
的范围内。
这样,即使数字(4、7 或 50(超出范围,代码也能可靠地从数组中选取条目。4 % 4
是0
,7 % 4
是3
,50 % 4
是2
。所有这些都是name
的有效数组索引。
完整示例(实时副本(:
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 是 0: a 7 % 4 是 3: d 50 % 4 是 2: c
很简单:这是模,或者准确地说是余数运算符。
这与数组本身无关。它只是对用于计算数组索引的值进行数值计算。