Учитывая приведенный ниже код в методе main()
при вызове метода get()
в классе Queue
, когда я делаю это, выходные данные отличаются от способа, изложенного ниже:
Все показанные буквыв выводе этого кода, как и ожидалось :
class Queue {
char get() {
if (getlock == putlock) {
System.out.println("-Queue is empty");
return (char) 0;
}
return q[getlock++];
}
}
public static void main(String[] args) {
Queue bigQ = new Queue(100);
Queue smallQ = new Queue(4);
char ch;
int i;
System.out.println("Using bigQ to store the alphabet. ");
for (i = 0; i < 26; i++)
bigQ.put((char)('A' + i));
System.out.print("Contents of bigQ: ");
for (i = 0; i < 26; i++) {
ch = bigQ.get();
if (ch != (char) 0)
System.out.print(ch);
}
}
Однако, когда я не использую char ch
в main()
, а вместо этого повторно вызываю bigQ.get()
напрямую, он показывает только каждыйтретье письмоЯ устал и не могу понять почему.Измененный фрагмент кода приведен ниже:
В выходных данных этого кода показаны только каждые третьи буквы
for (i = 0; i < 26; i++) {
bigQ.get();
if (bigQ.get() != (char) 0)
System.out.print(bigQ.get());
}
Небольшое изменение и такая разница.Я был бы признателен, если бы вы сообщили мне, почему это так, потому что я действительно не понимаю.