== Why is this an issue? Since Java 7, ``++String++``s can be used as ``++switch++`` arguments. So when a single ``++String++`` is tested against three or more values in an ``++if++``/``++else if++`` structure, it should be converted to a switch instead for greater readability. *Note* that this rule is automatically disabled when the project's ``++sonar.java.source++`` is lower than ``++7++``. === Noncompliant code example [source,java] ---- if ("red".equals(choice)) { // Noncompliant dispenseRed(); } else if ("blue".equals(choice)) { dispenseBlue(); } else if ("yellow".equals(choice)) { dispenseYellow(); } else { promptUser(); } ---- === Compliant solution [source,java] ---- switch(choice) { case "Red": dispenseRed(); break; case "Blue": dispenseBlue(): break; case "Yellow": dispenseYellow(); break; default: promptUser(); break; } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Convert this "if/else if" structure into a "switch". ''' == Comments And Links (visible only on this page) === is related to: S2145 endif::env-github,rspecator-view[]