include::../description.adoc[]

== Noncompliant Code Example

----
switch i {                                                                                                           
case 1:
	doFirstThing()
	doSomething()
case 2:
	doSomethingElse()
case 3: // Noncompliant; duplicates case 1's implementation
	doFirstThing()
	doSomething()
default:
	doTheRest()
}

if a >= 0 && a < 10 {
	doFirstThing()
	doSomething()
} else if a >= 10 && a < 20 {
	doSomethingElse()
} else if a >= 20 && a < 50 {
	doFirstThing()
	doSomething() // Noncompliant; duplicates first condition
} else {
	doTheRest()
}
----

== Exceptions

Blocks in an ``++if++`` chain or ``++case++`` blocks that contain a single line of code are ignored.

----
if a == 1 {
  doSomething()  //no issue, usually this is done on purpose to increase the readability
} else if a == 2 {
  doSomethingElse()
} else {
  doSomething()
}
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

include::../highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
