import java.io.PrintStream;
import java.util.Scanner;
public class DateDifference
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int firstMonthNumber = 0;int secondMonthNumber = 0;
System.out.println("For the first date,");
System.out.print("Enter month: ");
String firstMonth = keyboard.next();
System.out.print("Enter year: ");
int firstYear = keyboard.nextInt();
System.out.println();
System.out.println("For the second date,");
System.out.print("Enter month: ");
String secondMonth = keyboard.next();
System.out.print("Enter year: ");
int secondYear = keyboard.nextInt();
if (firstMonth.equalsIgnoreCase("January")) {
firstMonthNumber = 1;
} else if (firstMonth.equalsIgnoreCase("February")) {
firstMonthNumber = 2;
} else if (firstMonth.equalsIgnoreCase("March")) {
firstMonthNumber = 3;
} else if (firstMonth.equalsIgnoreCase("April")) {
firstMonthNumber = 4;
} else if (firstMonth.equalsIgnoreCase("May")) {
firstMonthNumber = 5;
} else if (firstMonth.equalsIgnoreCase("June")) {
firstMonthNumber = 6;
} else if (firstMonth.equalsIgnoreCase("July")) {
firstMonthNumber = 7;
} else if (firstMonth.equalsIgnoreCase("August")) {
firstMonthNumber = 8;
} else if (firstMonth.equalsIgnoreCase("September")) {
firstMonthNumber = 9;
} else if (firstMonth.equalsIgnoreCase("October")) {
firstMonthNumber = 10;
} else if (firstMonth.equalsIgnoreCase("November")) {
firstMonthNumber = 11;
} else {
firstMonthNumber = 12;
}
if (secondMonth.equalsIgnoreCase("January")) {
secondMonthNumber = 1;
} else if (secondMonth.equalsIgnoreCase("February")) {
secondMonthNumber = 2;
} else if (secondMonth.equalsIgnoreCase("March")) {
secondMonthNumber = 3;
} else if (secondMonth.equalsIgnoreCase("April")) {
secondMonthNumber = 4;
} else if (secondMonth.equalsIgnoreCase("May")) {
secondMonthNumber = 5;
} else if (secondMonth.equalsIgnoreCase("June")) {
secondMonthNumber = 6;
} else if (secondMonth.equalsIgnoreCase("July")) {
secondMonthNumber = 7;
} else if (secondMonth.equalsIgnoreCase("August")) {
secondMonthNumber = 8;
} else if (secondMonth.equalsIgnoreCase("September")) {
secondMonthNumber = 9;
} else if (secondMonth.equalsIgnoreCase("October")) {
secondMonthNumber = 10;
} else if (secondMonth.equalsIgnoreCase("November")) {
secondMonthNumber = 11;
} else {
secondMonthNumber = 12;
}
int monthDifference;
int yearDifference;
int monthDifference;
if (firstYear > secondYear)
{
int yearDifference = firstYear - secondYear;
monthDifference = firstMonthNumber - secondMonthNumber;
}
else
{
int monthDifference;
if (firstYear < secondYear)
{
int yearDifference = secondYear - firstYear;
monthDifference = secondMonthNumber - firstMonthNumber;
}
else
{
yearDifference = 0;
monthDifference = Math.abs(secondMonthNumber - firstMonthNumber);
}
}
if (monthDifference < 0)
{
yearDifference--;
monthDifference += 12;
}
System.out.println();
System.out.println("These dates are " + yearDifference + " years and " + monthDifference + " months apart.");
}
}
Errors:DateDifferencesFinderProject.java:107: error: variable MonthDifference is already defined in method main(String[])
int MonthDifference;
^
DateDifferencesFinderProject.java:110: error: variable YearDifference is already defined in method main(String[])
int YearDifference = firstYear - secondYear;
^
DateDifferencesFinderProject.java:115: error: variable MonthDifference is already defined in method main(String[])
int MonthDifference;
^
DateDifferencesFinderProject.java:118: error: variable YearDifference is already defined in method main(String[])
int YearDifference = secondYear - firstYear;
^
4 errors
所以我认为我完成了计算机编程项目介绍背后的代码,但后来我遇到了这些简单的错误。我很难理解编译器给我的错误。为什么先前定义的变量会导致编译器出现问题?什么问题导致编译器出现问题?我该怎么做才能解决错误?当我谈到这种事情时,我知道我是一个完整的菜鸟,但我只花了最后一小时看着这些错误撕裂了我的头发。如果有人能指出我正确的方向,任何帮助将不胜感激。
答案 0 :(得分:0)
当你说int foo
时,它会在当前范围内声明一个变量。如果在同一范围内有另一个int foo
,则它是一个重复的变量声明。
删除错误中指示的行上的所有其他声明。他们不需要。