-4

CS8070 control cannot go beyond the switch with the final label case

("case"Rock":") , ("case"Scissors":") , ("case"Paper":")
{
    class Program
    {
        static void Main(string[] args)
        {
            string Player1 = Console.ReadLine();
            Console.Clear();
            string Player2 = Console.ReadLine();
            switch (Player1)
            {
                case "Rock":
                    switch (Player2)
                    {
                        case "Rock":
                            Console.WriteLine("Draw");
                            break;
                        case "Scissors":
                            Console.WriteLine("Win Player1");
                            break;
                        case "Paper":
                            Console.WriteLine("Win Player2");
                            break;
                    }
                    switch (Player1)
                    {
                        case "Scissors":
                            switch (Player2)
                            {
                                case "Rock":
                                    Console.WriteLine("Win Player2");
                                    break;
                                case "Scissors":
                                    Console.WriteLine("Draw");
                                    break;
                                case "Paper":
                                    Console.WriteLine("Win Player1");
                                    break;
                            }
                            switch (Player1)
                            {
                                case "Paper":
                                    switch (Player2)
                                    {
                                        case "Rock":
                                            Console.WriteLine("Win Player1");
                                            break;
                                        case "Scissors":
                                            Console.WriteLine("Win Player2");
                                            break;
                                        case "Paper":
                                            Console.WriteLine("Draw");
                                            break;
                                    }
                            }
                    }
            }
        }
Some programmer dude
  • 400,186
  • 35
  • 402
  • 621
  • Possible duplicate of [Control cannot fall through from one case label](https://stackoverflow.com/questions/6696692/control-cannot-fall-through-from-one-case-label) – BJ Myers Nov 05 '18 at 06:00
  • In the future, please do more research before asking questions here. It is trivial to find a solution to your problem using an internet search for the error message. – BJ Myers Nov 05 '18 at 06:01

1 Answers1

1

Add breaks to the end of case "Rock", case "Scissors" and case "Paper"::

switch (Player1)
{
    case "Rock":
        switch (Player2)
        {
            case "Rock":
                Console.WriteLine("Draw");
                break;
            case "Scissors":
                Console.WriteLine("Win Player1");
                break;
            case "Paper":
                Console.WriteLine("Win Player2");
                break;
        }
        switch (Player1)
        {
            case "Scissors":
                switch (Player2)
                {
                    case "Rock":
                        Console.WriteLine("Win Player2");
                        break;
                    case "Scissors":
                        Console.WriteLine("Draw");
                        break;
                    case "Paper":
                        Console.WriteLine("Win Player1");
                        break;
                }
                switch (Player1)
                {
                    case "Paper":
                        switch (Player2)
                        {
                            case "Rock":                       
                                Console.WriteLine("Win Player1");
                                break;
                            case "Scissors":
                                Console.WriteLine("Win Player2");
                                break;
                            case "Paper":
                                Console.WriteLine("Draw");
                                break;
                            }
                    break;  //<---
                }
            break; //<---
         }
    break;  //<---   
}

Switch statement's cases should have break;, throw, goto, or return to exit after case is done. This isn't true only if you have cases stacked like so:

switch(statement)
{
    case 1:
    case 2:
    case 3:
        DoSomething();
        break;
} 
SᴇM
  • 7,024
  • 3
  • 24
  • 41