C# 这段代码似乎同时在if语句和else语句中给出了结果,为什么? Console.WriteLine(“您好,欢迎使用次日日历”); 控制台。写线(“请写下日期”); int day=int.Parse(Console.ReadLine()); int day_next=第天+1; 控制台。写线(“请写下月号”); int month=int.Parse(Console.ReadLine()); 控制台。写线(“请写下年份”); int year=int.Parse(Console.ReadLine()); 开关(月) { 案例1: 案例3: 案例5: 案例7: 案例8: 案例10: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==32) { Console.WriteLine(“日期为“+1+”/”+(月+1)+“/”+年); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 案例2: 如果(第%4年==0&&day|u下一个0 | |年%4!=0&&day|u下一个0) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(第%4年==0&&day_next==30&&day>0 | |第%4年!=0&&day_next==29&&day>0) { Console.WriteLine(“日期为“+1+'/”+(月+1)+'/”+年); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 案例4: 案例6: 案例9: 案例11: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==30) { Console.WriteLine(“日期为“+1+'/”+(月+1)+'/”+年); } 其他的 { 控制台写入线(“错误”); } 打破 案例12: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==32) { Console.WriteLine(“日期为“+1+'/”+1+'/”+(年份+1)); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 违约: 控制台。WriteLine(“错误!”); 打破 }

C# 这段代码似乎同时在if语句和else语句中给出了结果,为什么? Console.WriteLine(“您好,欢迎使用次日日历”); 控制台。写线(“请写下日期”); int day=int.Parse(Console.ReadLine()); int day_next=第天+1; 控制台。写线(“请写下月号”); int month=int.Parse(Console.ReadLine()); 控制台。写线(“请写下年份”); int year=int.Parse(Console.ReadLine()); 开关(月) { 案例1: 案例3: 案例5: 案例7: 案例8: 案例10: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==32) { Console.WriteLine(“日期为“+1+”/”+(月+1)+“/”+年); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 案例2: 如果(第%4年==0&&day|u下一个0 | |年%4!=0&&day|u下一个0) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(第%4年==0&&day_next==30&&day>0 | |第%4年!=0&&day_next==29&&day>0) { Console.WriteLine(“日期为“+1+'/”+(月+1)+'/”+年); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 案例4: 案例6: 案例9: 案例11: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==30) { Console.WriteLine(“日期为“+1+'/”+(月+1)+'/”+年); } 其他的 { 控制台写入线(“错误”); } 打破 案例12: 如果(第0天) { Console.WriteLine(“日期为”+下一个+'/'+月+'/'+年); } 如果(下一天==32) { Console.WriteLine(“日期为“+1+'/”+1+'/”+(年份+1)); } 其他的 { 控制台。WriteLine(“错误!”); } 打破 违约: 控制台。WriteLine(“错误!”); 打破 },c#,C#,如果我输入例如:天=22,月=2,年=2015 它将写入“日期为2015年2月23日”,下一行将写入错误!有人能解释一下吗 如果要“链接”条件,可以使用else:: Console.WriteLine("Hello welcome to the Next-Day calendar"); Console.WriteLine("Please write down the day"); int day = int.Parse(Console.ReadLine()); int day_next = da

如果我输入例如:天=22,月=2,年=2015 它将写入“日期为2015年2月23日”,下一行将写入错误!有人能解释一下吗


如果要“链接”条件,可以使用
else::

Console.WriteLine("Hello welcome to the Next-Day calendar");
Console.WriteLine("Please write down the day");
int day = int.Parse(Console.ReadLine());
int day_next = day + 1;

Console.WriteLine("Please write down the month number");
int month = int.Parse(Console.ReadLine());

Console.WriteLine("Please write down the year");
int year = int.Parse(Console.ReadLine());

switch (month) 
{
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
        if (day_next <=31 && day > 0) 
        {
            Console.WriteLine("The date is " + day_next + '/' + month + '/' + year);
        }
        if (day_next == 32) 
        {
            Console.WriteLine("The day is " + 1 + '/' + (month+1) + '/' + year); 
        }
        else
        {
            Console.WriteLine("Error!");
        }
        break;
    case 2:
        if (year % 4 == 0 && day_next <= 29 && day > 0 || year % 4 != 0 && day_next <= 28 && day > 0) 
        {
            Console.WriteLine("The date is " + day_next + '/' + month + '/' + year); 
        }
        if (year % 4 == 0 && day_next == 30 && day > 0 || year % 4 != 0 && day_next == 29 && day > 0) 
        {
            Console.WriteLine("The date is " + 1 + '/' + (month+1) + '/' + year); 
        }
        else
        {
            Console.WriteLine("Error!");
        }
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        if (day_next <= 30 && day > 0) 
        {
            Console.WriteLine("The date is " + day_next + '/' + month + '/' + year);
        }
        if (day_next == 30) 
        {
            Console.WriteLine("The date is " + 1 + '/' + (month + 1) + '/' + year);
        }
        else 
        {
            Console.WriteLine("Error");
        }
        break;
    case 12:
        if (day_next <=31 && day > 0) 
        {
            Console.WriteLine("The date is " + day_next + '/' + month + '/' + year);
        }
        if (day_next == 32) 
        {
            Console.WriteLine("The day is " + 1 + '/' + 1 + '/' + (year + 1)); 
        }
        else
        {
            Console.WriteLine("Error!");
        }
        break;
    default:
        Console.WriteLine("Error!");
        break;
}

我想指出的是,从月/日/年输入中生成日期的方法要简单得多,但这就是您看到结果的原因。

我建议您在谷歌上搜索一些关于控制语句的简单而免费的教程,特别关注代码逻辑执行的
If Else
语句。如果你想继续相同的逻辑,那么第二个if应该是“else if”。设置一个断点并逐步完成它。看看哪些行正在执行,哪些没有执行。非常感谢。我认为C#中没有“其他如果”,因为我的老师说没有。不管怎么说,它现在起作用了。再次感谢@DannyDamsky嗯,从某种意义上说,它不是它自己的操作符——它只是将
if
内联到
else
块中。我在我的答案中添加了一些内容,以说明它是什么;s相当于是否添加了大括号。
if (day_next <=31 && day > 0) 
{
    Console.WriteLine("The date is " + day_next + '/' + month + '/' + year);
}
else if (day_next == 32) 
{
    Console.WriteLine("The day is " + 1 + '/' + (month+1) + '/' + year); 
}
else
{
    Console.WriteLine("Error!");
}
break;
if (day_next <=31 && day > 0) 
{
    Console.WriteLine("The date is " + day_next + '/' + month + '/' + year);
}
else 
{
    if (day_next == 32) 
    {
        Console.WriteLine("The day is " + 1 + '/' + (month+1) + '/' + year); 
    }
    else
    {
        Console.WriteLine("Error!");
    }
}
break;