안녕하세요 모두 원형 배열을 구현하려고하지만 뭔가 정확하지 않습니다. add 메소드 또는 display에 있는지 확실하지 않습니다. 디버거를 실행할 때 숫자가 있지만 순서대로 가져올 수 없습니다. 제발 내게 의견을 줄 수 있어요. 고맙습니다.순환 대기열 배열
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
Queue q1 = new Queue();
int choice = 0;
do
{
System.out.println ("Menu:");
System.out.println ("1: Add");
System.out.println ("2: Remove");
System.out.println ("3: Display");
System.out.println ("4: Exit");
System.out.print ("\nChoice: ");
choice = input.nextInt();
switch (choice)
{
case 1:
System.out.print ("\nEnter a number: ");
int num = input.nextInt();
q1.add (num);
break;
case 2:
q1.remove();
break;
case 3:
q1.display();
break;
case 4:
System.out.println ("Good Bye");
break;
default:
System.out.println ("Wrong choice!");
break;
}
} while (choice != 4);
}
}
공용 클래스 큐 {
private final int SIZE;
private int first;
private int last;
private int[] q;
public Queue()
{
SIZE = 5;
q = new int[ SIZE ];
first = 0;
last = 0;
}
public boolean isFull()
{
return last == SIZE;
}
public boolean isEmpty()
{
return last == first;
}
public void add (int x)
{
if ( ! isFull())
{
q[ (first + last) % q.length ] = x;
last ++;
} else
{
System.out.println ("\nThe queue is full!");
}
}
int remove()
{
int x = 0;
if ( ! isEmpty())
{
x = q[ first ];
first = (first + 1) % q.length;
last --;
} else
{
System.out.println ("The queue is empy");
}
return x;
}
public void display()
{
if ( ! isEmpty())
{
for (int i = first; i < SIZE; i ++)
{
System.out.println (q[ i ]);
}
} else
{
System.out.println ("The queue is emptry");
}
}
스택 오버플로에 오신 것을 환영합니다! 디버깅 도움을 요청하는 질문 ("이 코드가 작동하지 않는 이유는 무엇입니까?")에는 원하는 동작, _a 특정 문제 또는 error_ 및 _ 그 자체를 재현하는 데 필요한 _ 최단 코드 **가 포함되어야합니다. 분명한 문제 성명이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). –