comment.charAt(i%comment.length())做什么?

Kee*_*nen 0 java variables

我不明白% comment.length以下代码:

comment.charAt(i % comment.length())
Run Code Online (Sandbox Code Playgroud)

括号之间的部分是否转换为具有与i注释长度相关的值的整数?

例如,如果:

comment = "test"
i = 2
Run Code Online (Sandbox Code Playgroud)

comment.charAt(i % comment.length())是什么?

Tho*_*mas 6

%是模运算符,因此您的示例i % comment.length()将解析为2 % 4 = 2.这将返回第三个字符(在索引2处).

模数运算似乎是一种安全措施i >= comment.length().

考虑以下情况:i = 11comment = "test".如果你只是使用comment.chatAt(i)你会得到一个例外,因为只有4个字符.11 % 4 = 3在这种情况下,模运算将包围它并导致并返回第四个字符(索引3).