Skip to content

Yet another programming solutions log

Sample bits from programming for the future generations.

Technologies Technologies
  • Algorithms and Data Structures
  • Java Tutorials
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Spock Framework Tutorial
  • Spring Framework
  • Bash Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Developer’s Tools
  • Productivity
  • About
Expand Search Form

Java Switch Case

farenda 2015-06-07 0

Problem:

What is syntax for switch case statement in Java 7?

Solution:

In older Java versions switch-case statement worked only with primitive data types, like byte, short, char, and int.

Since Java 5 you can also use wrapper types for the primitive types i.e. Byte, Character, Short, and Integer. Moreover it accepts also enum types thus:

package com.farenda.solved;

import static java.lang.System.out;

// Sample enum to have something to work with:
enum Language {
    Java,
    Clojure,
    Python
}

public class JavaSolved {

    public static void main(String[] args) {
        // We have to refer through enum type name:
        Language lang = Language.Java;

        // Inside switch, can refer to enums by short names:
        switch (lang) {
        // "default" case can be in any place:
        default:      out.println("Unknown language: " + lang); break;
        // skipping "break" means to fallthrough to the next case
        case Java:    out.println("Java here!"); break;
        case Clojure: out.println("Clojure here!"); break;
        case Python:  out.println("Python here!"); break;
        }
    }
}

Let’s compile and run it:

$> javac src/com/farenda/solved/*.java -d out
$> java -cp out com.farenda.solved.JavaSolved
Java here!

Remember that you can’t mix types in switch-case statement, else you will receive compilation error:

Compiling: javac src/com/farenda/solved/*.java -d out
src/com/farenda/solved/JavaSolved.java:14: error: an enum switch case label must be the unqualified name of an enumeration constant
        case 1: System.out.println("Java here!"); break;
             ^
1 error

Since Java 7 you can also use switch with String types:

package com.farenda.solved;

import static java.lang.System.out;

public class JavaSolved {

    public static void selectLanguage(String lang) {
        switch (lang) {
        case "Java":    out.println("Java here!"); break;
        case "Clojure": out.println("Clojure here!"); break;
        case "Python":  out.println("Python here!"); break;
        }
    }

    public static void main(String[] args) {
        for (String lang : args) {
            selectLanguage(lang);
        }
    }
}

Let’s run it and see how switch on String types work in Java 7:

$> javac src/com/farenda/solved/*.java -d out
$> java -cp out com.farenda.solved.JavaSolved Java Python
Java here!
Python here!

Remember that String comparison is case sensitive.

Share with the World!
Categories Java Tags java-basics
Previous: Spring Rest Controller Testing
Next: Spring Boot “Hello, World”

Recent Posts

  • Java 8 Date Time concepts
  • Maven dependency to local JAR
  • Caesar cipher in Java
  • Java casting trick
  • Java 8 flatMap practical example
  • Linked List – remove element
  • Linked List – insert element at position
  • Linked List add element at the end
  • Create Java Streams
  • Floyd Cycle detection in Java

Pages

  • About Farenda
  • Algorithms and Data Structures
  • Bash Tutorial
  • Bean Validation Tutorial
  • Clojure Tutorial
  • Design Patterns
  • Java 8 Streams and Lambda Expressions Tutorial
  • Java Basics Tutorial
  • Java Collections Tutorial
  • Java Concurrency Tutorial
  • Java IO Tutorial
  • Java Tutorials
  • Java Util Tutorial
  • Java XML Tutorial
  • JUnit Tutorial
  • MongoDB Tutorial
  • Quartz Scheduler Tutorial
  • Software Developer’s Tools
  • Spock Framework Tutorial
  • Spring Framework

Tags

algorithms bash bean-validation books clojure design-patterns embedmongo exercises git gof gradle groovy hateoas hsqldb i18n java java-basics java-collections java-concurrency java-io java-lang java-time java-util java-xml java8 java8-files junit linux lists log4j logging maven mongodb performance quartz refactoring regex rest slf4j solid spring spring-boot spring-core sql unit-tests

Yet another programming solutions log © 2021

sponsored