aatakan
aatakan

Reputation: 93

Switches not changing state in Java

I'm trying to write code which will oscillate the set_player between 2 states of player1.name and player2.name, I have written the following code with val = 0 when it is initialised, inside a while loop. set_player never seems to change state and stays at player2.name the whole time. Any help would be great.

switch (val){
                case 0:
                    set_player = player1.name;
                    val = 2;
                case 1:
                    set_player = player1.name;
                    val = 2;
                case 2:
                    set_player = player2.name;
                    val = 1;
            }

Upvotes: 0

Views: 347

Answers (2)

theDima
theDima

Reputation: 756

You should add break; line at the end of each case block:

... case n: ... ... break; case n+1: ....

Upvotes: 0

Eran
Eran

Reputation: 393771

You are missing break statements. Without breaking after each case, case 2 will always execute if val is either 0, 1 or 2. Therefore set_player ends up being assigned player2.name.

        switch (val){
            case 0:
                set_player = player1.name;
                val = 2;
                break;
            case 1:
                set_player = player1.name;
                val = 2;
                break;
            case 2:
                set_player = player2.name;
                val = 1;
                break;
        }

Upvotes: 6

Related Questions