【发布时间】:2017-02-26 04:08:59
【问题描述】:
我的代码没有返回任何值,我不知道为什么。我的任务要求我编写一个接受 mm/dd/yyyy 格式的日期的代码,并且我需要输入闰年。问题是,我没有得到任何输入。我是一个业余广告,我不知道出了什么问题。我也允许使用 Case 语句,但我不确定如何实现 case。
import java.util.Scanner;
public class Question1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in).useDelimiter("/");
System.out.println("Please enter a date in mm/dd/yyyy format: ");
String mm = sc.next();
String dd = sc.next();
String yyyy = sc.next();
int month = Integer.parseInt(mm);
int day = Integer.parseInt(dd);
int year = Integer.parseInt(yyyy);
if (month <= 0 || month>12)
{
System.out.println("invalid month ");
}
if (year%4 != 0 || month == 02 || day >= 29)
{
System.out.println("invalid date");
}
if (month == 4 || month == 6 || month == 9 || month == 11 || day >= 31)
{
System.out.println("Invalid day");
}
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 || day >=32 )
{
System.out.println("Invalid day");
}
else
{
System.out.println("Valid date");
}
}
}
【问题讨论】:
-
那么,
year不能被 4 整除总是“无效日期”?真的吗?确定你不是说&&而不是||?在许多这些检查中?你知道其中的区别,对吧? -
修复它,仍然没有输出。现在怎么了?
-
@BamdadGoudarziMoazami 您的代码不会返回任何值,因为该方法是无效的。你想返回什么?也许你可以发布整个作业要求我很难理解你的目标是什么
-
@kalenpw - 在上下文中,他显然是指输出 - 请参阅所有
System.out.println()语句。 @Andreas 是的,他的逻辑是错误的 - 这可能是因为当代码永远不会超过第二行时,它变得难以调试。