hiwa doski Ответов: 1

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


Я пытаюсь создать приложение для заметок, которое дает каждой заметке увеличенное число, начиная с 1, мой вопрос заключается в том, как увеличить переменную "count" в методе "addNote ()", чтобы она увеличивалась каждый раз, когда запись помещается внутрь карты, и дать каждой записи число, большее на единицу, чем предыдущее число?

public class Main {
    static Scanner scanner = new Scanner(System.in);
    static Map<Integer,String> myNotes = new HashMap<>();

    public static void main(String[] args) {
        
    }

    public static boolean addNote() {
        System.out.println("Enter a note to added ");
        String note = scanner.nextLine();
        if (myNotes.containsValue(note)) {
            System.out.println("Note " + note + " already exists");
            return false;
        }
        int count=1;
        myNotes.put(count,note);
        System.out.println("Note added successfully");
        return true;
    }


Что я уже пробовал:

я не знал, что делать, я пробовал разные способы, но это не сработало.

1 Ответов

Рейтинг:
6

Afzaal Ahmad Zeeshan

Возьмите переменную count вне функции—из-за области действия в Java эта переменная удаляется и обновляется как 1 каждый раз, когда вы вызываете функцию для добавления заметки, что затем приводит к обновлению значения для этого ключа, которое равно 1.

static int count = 1; // needs to be static to be accessible in static context.

public static boolean addNote() {
    System.out.println("Enter a note to added ");
    String note = scanner.nextLine();
    if (myNotes.containsValue(note)) {
        System.out.println("Note " + note + " already exists");
        return false;
    }

    // use the current value, but update for next call!
    myNotes.put(count++, note); 
    System.out.println("Note added successfully");
    return true;
}
Теперь это будет работать так, как вы ожидаете. Теперь в основном вы можете вызвать функцию несколько раз.

Пожалуйста, проверьте эти ссылки для получения дополнительной информации по этой теме,
Интересные факты об операторах инкремента и декремента в Java - GeeksforGeeks[^]
Область действия переменных в Java - GeeksforGeeks[^]


hiwa doski

Огромное спасибо.