using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace NextDate
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
           int y,m,d;
            y =Convert.ToInt32(textBox1.Text);
            m = Convert.ToInt32(textBox2.Text);
            d = Convert.ToInt32(textBox3.Text);
            bool f;
           
            f=((y%4==0)&&(y%100!=0)||(y%100==0));
            switch (m)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    if(d<31)
                        d++;
                    else
                    {
                        if(d==31)
                        {
                            if(m!=12)
                            {
                                m++;
                                d=1;
                            }
                            else 
                            {
                                y++;
                                m=1;
                                d=1;
                            }                        }
                    }
                        break;
                  case 4:
                  case 6:
                  case 9:
                  case 11:
                        if(d<30)
                            d++;
                        else 
                        {
                            if(d==30)
                            {
                                m++;
                                d=1;
                            }
                        }
                            break;
                   case 2:
                            if (f)
                            {
                                if (d < 28)
                                    d++;
                                else
                                {
                                    if (d == 28)
                                    {
                                        m++;
                                        d = 1;
                                    }
                                    break;
                                }
                            }
                            else
                            {
                                if (d < 29)
                                    d++;
                                else
                                {
                                    if (d == 29)
                                    {
                                        m++;
                                        d = 1;
                                    }
                                    break;
                                }
                            }
            }
        }        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text= "";
            textBox2.Text = "";
            textBox3.Text = "";
        }
    }
}
调试弹出:错误 1 控制不能从一个 case 标签(“case 2:”)贯穿到另一个 case 标签
G:\垃圾\NextDate\NextDate\Form1.cs 73 20 NextDate在VC上用C++可以调试成功,可是当我输入2000年13月2日,下一个还是2000年13月2日,再说也没有13
月啊!
帮我看看咯,谢谢啦!

解决方案 »

  1.   


    c# case后面必须跟break 
      

  2.   

    case 2:
                        if (f)
                        {
                            if (d < 28)
                                d++;
                            else
                            {
                                if (d == 28)
                                {
                                    m++;
                                    d = 1;
                                }
                                break;
                            }
                        }
                        else
                        {
                            if (d < 29)
                                d++;
                            else
                            {
                                if (d == 29)
                                {
                                    m++;
                                    d = 1;
                                }
                                break;
                            }
                        }
                        break;//加这个就不报错了
      

  3.   

    13的时候你没说怎么处理亚,你可以加个default报下错。
      

  4.   

    调试弹出:错误 1 控制不能从一个 case 标签(“case 2:”)贯穿到另一个 case 标签 
    case 不能嵌套!
      

  5.   

    c# case后面必须跟break ,default后面也加break;