gpt4 book ai didi

java - Java 中的队列不工作

转载 作者:行者123 更新时间:2023-11-30 03:06:05 25 4
gpt4 key购买 nike

class Que{
char q[];
int front , rear ;

Que(int size){
q = new char[size];
front = rear =0;
}
void push(char ch){
if(rear == q.length){
System.out.println("Que is Full");
}
else{
q[rear++]=ch;
System.out.println(ch + " Added");
}
}
void pop(){
if(front==rear){
System.out.println("Que is Empty");

}
else{
System.out.println(q[front] + " Is being popped ");
front++;
}
}
void disp(){

char temp = q[front];
for(int i = front;i<rear ; i++)
{
System.out.println(q[i]);
}

}


}
class Example{

public static void main(String args[])
throws java.io.IOException{

Que Sample1 = new Que(10);
int opt = 1;
char j,k;
while(opt!=0){
System.out.println("1-Add , 2 - Pop , 3 - Display");
j = (char) System.in.read();
if(j=='1'){
System.out.println("What to push ?");
k = (char)System.in.read();
Sample1.push(k);
}
else if(j=='2'){
Sample1.pop();
}
else if(j=='3'){
Sample1.disp();
}
else if(j=='4'){
opt = 0;
}
else{ System.out.println("Try Again");}

}
}
}

这不起作用。当我编译并运行它时,它会显示主菜单,一旦我按下 1)ADD - 它就会跳过显示函数中的“已添加”消息。我做错了什么?

当我按 1(添加)时,它应该询问我“要推送什么”,它会执行此操作,但不会等待我的输入并再次循环播放。

这就是显示的内容--
1)添加
2)流行
3)显示
1
推送什么(无需输入)
已添加(自动显示)
1)添加
2)流行
3)显示

最佳答案

您在终端中输入什么?

如果您输入多个字符,例如11甚至1<Enter> ,您第二次调用System.in.read()将立即返回第二个字符:1<Enter> .

关于java - Java 中的队列不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com