Gansales1977
@Gansales1977
Учу джаву.

Как работает этот код?

Я учу Java. Пытаюсь читать код. Это метод из Шилда:

public void put(char ch) {
if (putloc == q.length - 1) {
System.out.println(" - Очередь заполнена");
return;
}
putloc++;
q[putloc] = ch;

Я не понял зачем инкрементировать putloc если следом ему присавивается параметр метода (ch)?
  • Вопрос задан
  • 318 просмотров
Решения вопроса 1
GavriKos
@GavriKos
если следом ему присавивается параметр метода (ch)?

вот тут ошибка. Ничего не присваивается putloc. Присвается q.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
public void put(char ch) {
if (putloc == q.length - 1) {
System.out.println(" - Очередь заполнена");
return;
}
putloc++;
q[putloc] = ch;

Ну давайте читать вместе.
Есть переменная putloc которая хранит индекс последнего размещения в очереди, предполагаю, что при пустой очереди, putloc = -1
Есть массив q в котором мы храним нашу очередь, определенного размера.
При добавлении элемента в очередь, мы проверяем, а не равен ли индекс последнего помещенного в очередь элемента, максимальному индексу массива q, и если вдруг равен, то ругаемся и ничего не делаем.
Если же массив еще не заполнен, мы определяем индекс массива по которому нужно разместить новый элемент очереди, путем инкремента переменной putloc.
А затем помещаем в массив по новому индексу putloc полученное значение ch.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы