42 lines
932 B
Plaintext
42 lines
932 B
Plaintext
Loop counters should not be modified in the body of the loop. However other loop control variables representing logical values may be modified in the loop, for example a flag to indicate that something has been completed, which is then tested in the for statement.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
var names = [ "Jack", "Jim", "", "John" ];
|
|
for (var i = 0; i < names.length; i++) {
|
|
if (!names[i]) {
|
|
i = names.length; // Non-Compliant
|
|
} else {
|
|
console.log(names[i]);
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
var names = [ "Jack", "Jim", "", "John" ];
|
|
for (var name of names) {
|
|
if (!name) {
|
|
break; // Compliant
|
|
} else {
|
|
console.log(name);
|
|
}
|
|
}
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
include::highlighting.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|