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

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

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

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

Я не понял зачем инкрементировать putloc если следом ему присавивается параметр метода (ch)?
  • Вопрос задан
  • 310 просмотров
Решения вопроса 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.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
HighTeam Нижний Новгород
от 120 000 до 200 000 ₽
iChar Санкт-Петербург
от 230 000 ₽
ОТП Банк Москва
от 240 000 до 270 000 ₽
25 нояб. 2020, в 19:58
35000 руб./за проект
25 нояб. 2020, в 19:13
1000 руб./в час
25 нояб. 2020, в 18:34
100000 руб./за проект