Вывод номера недели по вводимой дате в виде цифр от 1 до 31 java

Я абсолютный новичек не ругайтесь.

package lesson2;

import java.util.Scanner;

public class homework1 {
    public static void main(String[] args) {
        System.out.println("Введите число от 1 до 31");
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        int firstweek = 7;
        int secondweek = 14;
        int thirdweek = 21;
        int fourthweek = 31;
        int dayofmonth = number;
        if (dayofmonth <= firstweek) {
            System.out.println("Первая неделя");
        }
        if (dayofmonth <= secondweek) {
            System.out.println("Вторая неделя");
        }
        if (dayofmonth <= thirdweek) {
            System.out.println("Третья неделя");
        }
        if (dayofmonth <= fourthweek) {
            System.out.println("Четвертая неделя");
        }
    }
}

Как мне исправить, чтобы выдавало нужный ответ? Благодарен за помощь.


Ответы (1 шт):

Автор решения: Fleckinger

В нынешнем виде, ваша программа сравнивает введенное пользователем число с каждым блоком if, а вам нужно, чтобы при выполнении одного условия, не выполнялись остальные, для этого добавьте else после блока if.

        if (dayOfMonth <= firstWeek) {
            System.out.println("Первая неделя");
        } else if (dayOfMonth <= secondWeek) {
            System.out.println("Вторая неделя");
        } else if (dayOfMonth <= thirdWeek) {
            System.out.println("Третья неделя");
        } else if (dayOfMonth <= fourthWeek) {
            System.out.println("Четвертая неделя");
        }
→ Ссылка