Это не фактический ответ на ваш вопрос, но это то, что я хотел опубликовать некоторое время. Проблема в том, что делать, когда вы полностью застряли.
Одна вещь, которую я узнал в колледже, была попытка набросать код, а не концентрироваться на деталях. Создание набросков в коде и одновременная компиляция и работа кода могут помочь вам добиться прогресса, когда вы попытаетесь решить сложную проблему.
Начните с чего-то вроде этого:
public class SquareOrRectangle {
public static void main( String... args ) {
// 1. Get user input
// 2. Determine if square
// 3. Determine if rectangle
// 4. Print perimeter
}
}
Вот и все. Просто начните с чего-то базового c, которое содержит все необходимые вам шаги. Затем начните разбирать это дальше, оставляя код по-прежнему компилируемым и работающим.
public class SquareOrRectangle {
public static void main( String... args ) {
// 1. Get user input
getUserInput();
// 2. Determine if square
boolean square = isSquare();
// 3. Determine if rectangle
boolean rect = isRectangle();
// 4. Print perimeter
printPerimeter();
}
private void getUserInput() {
System.out.println( "Getting user input" );
}
private boolean isSquare() {
System.out.println( "Is square?" );
}
private boolean isRectangle() {
System.out.println( "Is rectangle?" );
}
private void printPerimeter() {
System.out.println( "Printing perimeter" );
}
}
Программа по-прежнему ничего не делает, но разбивает проблему на более мелкие этапы, которые легче решить. Важно отметить, что программа все еще компилируется и запускается. Это означает, что вы можете проверить это. Это важно, потому что вы не хотите писать огромный кусочек кода, а затем тестировать его сразу, вы хотите иметь возможность тестировать небольшие шаги, чтобы быстрее находить ошибки.
Если на каком-либо шаге вы не знаете, как решить этот шаг, разбейте его снова на маленькие шаги и повторяйте, пока у вас не появятся достаточно маленькие шаги, чтобы вы знали, как их решить.
Вот и все. Разбейте свою программу на маленькие шаги. Протестируйте каждый шаг и заставьте его работать, прежде чем пытаться заставить остальную часть кода работать. Пишите тесты и код небольшими блоками, не пытайтесь писать всю программу за один go.