控制不能从C#中的一个案例标签('default:')落到另一个案例标签

时间:2015-02-05 04:46:35

标签: c#

我遇到以下代码时遇到问题似乎break语句很好但我看不到什么。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Switch
{
class swtich
{
    static void Main(string[] args)
    {
        string input; int num;
        Console.WriteLine("Enter a number from 0-6: ");
        input = Console.ReadLine();
        num = int.Parse(input);
        switch (num)
        {
            case 0:
                Console.WriteLine("Sunday");
                break;
            case 1:
                Console.WriteLine("Monday");
                break;
            case 2:
                Console.WriteLine("Tuesday");
                break;
            case 3:
                Console.WriteLine("Wednesday");
                break;
            case 4:
                Console.WriteLine("Thursday");
                break;
            case 5:
                Console.WriteLine("Friday");
                break;
            case 6:
                Console.WriteLine("Saturday");
                break;
            default:
                Console.WriteLine("Invalid input");
        }
    }
}
}

这是我得到的错误 控件不能从一个案例标签('默认:')转到另一个案例标签

2 个答案:

答案 0 :(得分:34)

break;案例之后加default:

...
  case 6:
    Console.WriteLine("Saturday");
    break;
  default:
    Console.WriteLine("Invalid input");
    break;
}

default案例不一定要在最后,因此您必须像其他地方一样包含break以避免此警告。

答案 1 :(得分:17)

与C,C ++或Java中的switch语句不同,C#不允许使用case语句,这包括default case语句。您必须在break案例之后添加default

default:
    Console.WriteLine("Invalid Input");
    break; // this is required

正如@AlexeiLevenkov指出的那样,break并不是必需的,但是,需要某种阻止到达构造末尾的语句,例如return,{{1 }或break