111,120
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
enum weekday
{
Sunday,
Monday,
Tuesday,
}
static void Main(string[] args)
{
switch (weekday.Sunday)
{
case 0: Console.WriteLine("今天是" + weekday.Sunday);break;
case weekday.Monday: Console.WriteLine("今天是" + weekday.Monday);break;
case weekday.Tuesday: Console.WriteLine("今天是" + weekday.Tuesday); break;
}
Console.Read();
}
}
}
/*
疑问一:C# 中的switch语句必须使用break;吗?没有的话会报以下错误:
Control cannot fall through from one case label ('case 0:') to another
疑问二:第一个case语句为0和weekday.Sunday都能得到执行,但是后面的case语句为
数字的话,则报错,请问这是为什么啊?
疑问三:打印出weekday.Sunday的结果为Sunday,但是在case语句中写Sunday或者"Sunday"都会
报错,为什么?输出结果的Sunday到底是一个什么类型?
疑问四:在枚举声明时可以使用Tuesday=55语句,但是却在输出结果语句中仍然为Tuesday,
怎样才是55?还有Tuesday赋值为其它数据类型就会报错。
*/
weekday _day = weekday.Sunday;
switch (_day)
{
case weekday.Sunday:
Console.WriteLine("今天是" + weekday.Sunday);
break;
case weekday.Monday:
Console.WriteLine("今天是" + weekday.Monday);
break;
case weekday.Tuesday:
Console.WriteLine("今天是" + weekday.Tuesday);
break;
}
switch (weekday.Sunday)
{
case 0: Console.WriteLine("今天是" + weekday.Sunday);break;//0也会执行,为什么?难不成是C#的Bug???
}switch (weekday.Monday)
{
case 1: Console.WriteLine("今天是" + weekday.Monday);break;上面的0会执行,这里的1却会报错,不明白?
}