即使有休息,控制也无法从一个案例标签落到另一个案例

时间:2017-01-23 18:09:57

标签: c#

这是代码的一部分。

我收到错误“控件无法从案例3中的一个案例标签转到另一个案例标签”。

尽管使用了break语句,但它没有被检测到。做正确的方法是什么?

更新:错误以防万一。不要在其他情况下浪费时间。

switch (output)
{
    case 1:
        int num, reverse = 0;
        Console.WriteLine("Enter a Number : ");
        num = int.Parse(Console.ReadLine());
        while (num != 0)
        {
            reverse = reverse * 10;
            reverse = reverse + num % 10;
            num = num / 10;
        }
        Console.WriteLine("Reverse of Number is : "+reverse);
        Console.ReadLine();
        break;
    case 2:
        int number, sum = 0, r,square;
        Console.WriteLine("Enter a Number : ");
        number = int.Parse(Console.ReadLine());
        while (number != 0)
        {
            r = number % 10;
            number = number / 10;
            square = r * r;
            sum = sum + square;
        }
        Console.WriteLine("Sum of square of Digits of the Number : "+sum);
        Console.ReadLine();
        break;
    case 3:
        Console.WriteLine("Enter 1 for AND 2 for OR and 3 for XOR Operation");
        int answer = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Your 2 inputs are?");
        int inp1= Convert.ToInt32(Console.ReadLine());
        int inp2= Convert.ToInt32(Console.ReadLine());
        switch (answer)
        {
            case 1:
                int input3 = inp1 * inp2;
                System.Console.WriteLine("Output is" + input3);
                Console.ReadLine();
                break;
            case 2:
                int input4 = inp1 + inp2;
                System.Console.WriteLine("Output is" + input4);
                Console.ReadLine();
                break;
            case 3:
                if (inp1 == inp2)
                {
                    System.Console.WriteLine("OUTPUT IS 0");
                    Console.ReadLine();
                }
                else
                {
                    System.Console.WriteLine("Output is 1");
                    Console.ReadLine();
                }
                break;

2 个答案:

答案 0 :(得分:3)

你的问题是你只能突破内部case而不是外部,所以你会遇到问题。

case 3 ...
             case 3:

                     if (inp1 == inp2)
                     {
                         System.Console.WriteLine("OUTPUT IS 0");
                         Console.ReadLine();


                     }

                     else
                     {
                         System.Console.WriteLine("Output is 1");
                         Console.ReadLine();

                     }
                     break;
 break; //break the outer case3

答案 1 :(得分:1)

添加goto case X代替break代替您希望坠落的位置。

......没关系。你需要第一个案例3的表达式块。

case 3
{
    /// your other switch here
    break;
}

通过不使用作用域块,您忽略了外部语句。它需要休息以及内在的陈述。