== Why is this an issue? Nested ``++when++`` structures are difficult to understand because you can easily confuse the cases of an inner ``++when++`` as belonging to an outer statement. Therefore nested ``++when++`` statements should be avoided. Specifically, you should structure your code to avoid the need for nested ``++when++`` statements, but if you cannot, then consider moving the inner ``++when++`` to another function. === Noncompliant code example [source,kotlin] ---- fun foo(n: Int, m: Int) { when (n) { 0 -> when (m) { // Noncompliant; nested when // ... } 1 -> print("1") else -> print("2") } } ---- === Compliant solution [source,kotlin] ---- fun foo(n: Int, m: Int) { when (n) { 0 -> bar(m) 1 -> print("1") else -> print("2") } } fun bar(m: Int){ when(m) { // ... } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Refactor the code to eliminate this nested "when". ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]