Я создаю окончательную программу для моего вводного курса программирования Java, и мне нужна какая-то помощь. Значения текущего дня и следующего дня неправильно печатаются. Я прочитал мой код снова и снова, но я не могу окунуться в голову, почему это не работает должным образом. Любая помощь/совет ВЕЛИКОЕ оценили!Создание Java-программы для возврата Предыдущий, текущий и следующий день
В руководстве я должен следовать за это задание программы заключается в следующем:
A. Установите день.
B. Печатать день.
C. Верните день.
D. Вернитесь на следующий день.
E. Возврат на предыдущий день.
F. Рассчитайте и верните день, добавив определенные дни на текущий день. Например, если текущий день - понедельник, и мы добавим четыре дня, день, который будет возвращен, - пятница. Точно так же, если сегодня вторник, и мы добавим 13 дней, день, который будет возвращен, - понедельник.
G. Добавьте соответствующие конструкторы.
H. Написать определения методов для осуществления операций на День класса, как это определено в А через G.
I. Напишите программу для проверки различных операций на день класса.
* EDIT *** Этот новый код, который я написал отлично работает, пока я не установить день в понедельник. Проблема, с которой я сталкиваюсь, находится в методе previousDay. Я пытаюсь добавить оператор if/else, но я не могу его правильно скомпилировать, не получив ошибку outOfBounds Exception. Каков хороший способ выполнить это в массиве String?
обновленный код я написал в попытке выполнить эту программу задачу:
public class Day {
int index;
static String[] days = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
public Day(String currentDay)
{
for(int i = 0; i < days.length; i++)
{
if(currentDay.equals(days[i]))
{
index = i;
return;
}
}
System.out.println("Days is invalid");
}
public void printDay()
{
System.out.println("The Day is " + days[index]);
}
public String returnDay()
{
return days[index];
}
public String returnNextDay()
{
return days[(index + 1)% days.length];
}
public String returnPreviousDay()
{
if (days.length <= 1)
return days[index + 6];
else return days[(index - 1)%days.length];
}
public String whatDayIs(int i)
{
return days[(index + i)%days.length];
}
public static void main(String[] args)
{
Day day = new Day("Mon");
day.printDay();
System.out.println("Return Day: " + day.returnDay());
System.out.println("Next Day: " + day.returnNextDay());
System.out.println("Previous Day: " + day.returnPreviousDay());
System.out.println(day.whatDayIs(7));
}
}
Спасибо за ваше время!
Адам
Что напечатано на дни и что вы ожидаете в результате? –
Извините, если код грязный, я редактировал снова и снова. На текущий день я получаю «нуль», а на следующий день получаю то, что должно быть в текущий день «Солнце». – LearningJava101
В вашем коде слишком много проблем, чтобы реально помочь вам здесь. Я настоятельно рекомендую вам снова прочитать весь документ, который вы, возможно, получили в классе, и следуйте [java соглашениям об именах] (http://www.oracle.com/technetwork/java/codeconv-138413.html) –