Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (7k points)

In my code, the program does something depending on the text entered by the user. My code looks like this:

switch (name) {

        case text1: {

            //blah

            break;

        }

        case text2: {

            //blah

            break;

        }

        case text3: {

            //blah

            break;

        }

        case text4: {

            //blah

            break;

        }

However, the code inside cases text1 and text4 are the same. I was therefore wondering if it would be possible for me to implement something like

case text1||text4: {

            //blah

            break;

        }

I know that the || operator won’t work in the case statement but is there something similar I can case.

1 Answer

0 votes
by (13.1k points)

You can use  have both CASE statements as follows:

 case text1: 

  case text4:{

            //blah

            break;

        }

SEE THIS EXAMPLE: The code example calculates the number of days in a particular month:

class SwitchDemo {

    public static void main(String[] args) {

        int month = 2;

        int year = 2000;

        int numDays = 0;

        switch (month) {

            case 1:

            case 3:

            case 5:

            case 7:

            case 8:

            case 10:

            case 12:

                numDays = 31;

                break;

            case 4:

            case 6:

            case 9:

            case 11:

                numDays = 30;

                break;

            case 2:

                if (((year % 4 == 0) && 

                     !(year % 100 == 0))

                     || (year % 400 == 0))

                    numDays = 29;

                else

                    numDays = 28;

                break;

            default:

                System.out.println("Invalid month.");

                break;

        }

        System.out.println("Number of Days = "

                           + numDays);

    }

}

This is the output from the code:
Number of Days = 29

FALLTHROUGH:

Another point of interest is the break statement. Each break statement terminates the enclosing switch statement. Control flow continues with the first statement following the switch block. The break statements are necessary because, without them, statements in switch blocks fall

  through: All statements after the matching case label is executed in sequence, regardless of the expression of subsequent case labels, until a break statement is encountered.

EXAMPLE CODE:

public class SwitchFallThrough {

    public static void main(String[] args) {

        java.util.ArrayList<String> futureMonths =

            new java.util.ArrayList<String>();

        int month = 8;

        switch (month) {

            case 1:  futureMonths.add("January");

            case 2:  futureMonths.add("February");

            case 3:  futureMonths.add("March");

            case 4:  futureMonths.add("April");

            case 5:  futureMonths.add("May");

            case 6:  futureMonths.add("June");

            case 7:  futureMonths.add("July");

            case 8:  futureMonths.add("August");

            case 9:  futureMonths.add("September");

            case 10: futureMonths.add("October");

            case 11: futureMonths.add("November");

            case 12: futureMonths.add("December");

            default: break;

        }

        if (futureMonths.isEmpty()) {

            System.out.println("Invalid month number");

        } else {

            for (String monthName : futureMonths) {

               System.out.println(monthName);

            }

        }

    }

}

This is the output from the code:

August

September

October

November

December

Using Strings in switch statements:

In Java SE 7 and later, you can use a String object in the switch statement's expression. The following code example displays the number of the month based on the value of the String named month:

public class StringSwitchDemo {

    public static int getMonthNumber(String month) {

        int monthNumber = 0;

        if (month == null) {

            return monthNumber;

        }

        switch (month.toLowerCase()) {

            case "january":

                monthNumber = 1;

                break;

            case "february":

                monthNumber = 2;

                break;

            case "march":

                monthNumber = 3;

                break;

            case "april":

                monthNumber = 4;

                break;

            case "may":

                monthNumber = 5;

                break;

            case "june":

                monthNumber = 6;

                break;

            case "july":

                monthNumber = 7;

                break;

            case "august":

                monthNumber = 8;

                break;

            case "september":

                monthNumber = 9;

                break;

            case "october":

                monthNumber = 10;

                break;

            case "november":

                monthNumber = 11;

                break;

            case "december":

                monthNumber = 12;

                break;

            default: 

                monthNumber = 0;

                break;

        }

        return monthNumber;

    }

    public static void main(String[] args) {

        String month = "August";

        int returnedMonthNumber =

            StringSwitchDemo.getMonthNumber(month);

        if (returnedMonthNumber == 0) {

            System.out.println("Invalid month");

        } else {

            System.out.println(returnedMonthNumber);

        }

    }

}

The output from this code is 8.

Want to learn Java? Check out the Java certification from Intellipaat.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...