
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
53 lines
1.1 KiB
Plaintext
53 lines
1.1 KiB
Plaintext
== Why is this an issue?
|
|
|
|
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
|
|
|
|
[source,javascript]
|
|
----
|
|
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
|
|
|
|
[source,javascript]
|
|
----
|
|
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)
|
|
|
|
=== Message
|
|
|
|
Remove this assignment of "x".
|
|
|
|
|
|
=== Highlighting
|
|
|
|
* Primary: assigned counter variable
|
|
* Secondary: counter variable in ``++for++``-loop signature
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|