Java中的队列不工作 class-Que{ 字符q[]; 前,后; Que(整数大小){ q=新字符[大小]; 前=后=0; } 无效推送(char ch){ 如果(后==q.长度){ System.out.println(“Que已满”); } 否则{ q[后部++]=ch; 系统输出打印项次(ch+“添加”); } } void pop(){ 如果(前==后){ System.out.println(“Que为空”); } 否则{ System.out.println(q[front]+“正在弹出”); 前端++; } } void disp(){ 字符温度=q[前]; 对于(inti=front;i

Java中的队列不工作 class-Que{ 字符q[]; 前,后; Que(整数大小){ q=新字符[大小]; 前=后=0; } 无效推送(char ch){ 如果(后==q.长度){ System.out.println(“Que已满”); } 否则{ q[后部++]=ch; 系统输出打印项次(ch+“添加”); } } void pop(){ 如果(前==后){ System.out.println(“Que为空”); } 否则{ System.out.println(q[front]+“正在弹出”); 前端++; } } void disp(){ 字符温度=q[前]; 对于(inti=front;i,java,queue,Java,Queue,您在终端中键入的内容 如果键入多个字符,例如11或甚至1,则第二次调用System.in.read()将立即返回此第二个字符:1或您能给出控制台输出吗?这将有助于排除故障。如果可以,我将投票重新打开此。这是一个MCVE,所需的行为不是跳过显示“添加的”MSGyque类。您的类看起来很好。我能够获得您的应用程序通过清除系统来进行操作。在调用中。我相信您这里的问题是您的输入有问题。我建议查看扫描仪类,或修改您的系统。在调用中。这是了解发生了什么的最简单方法。这是编程的一个基本工具。如果您这样做,您就

您在终端中键入的内容


如果键入多个字符,例如
11
或甚至
1
,则第二次调用
System.in.read()
将立即返回此第二个字符:
1

您能给出控制台输出吗?这将有助于排除故障。如果可以,我将投票重新打开此。这是一个MCVE,所需的行为不是跳过显示“添加的”MSGyque类。您的类看起来很好。我能够获得您的应用程序通过清除
系统来进行操作。在
调用中。我相信您这里的问题是您的输入有问题。我建议查看
扫描仪
类,或修改您的
系统。在
调用中。这是了解发生了什么的最简单方法。这是编程的一个基本工具。如果您这样做,您就可以查找
System.in.read();
读取您的
1
-但是您在键盘上按下的下一个操作是什么?回车键-在下一个
read
调用中,它将获得
\r
的“新行”。并尝试推送它-在打印新行后显示添加的
消息。然后它循环返回顶部-在顶部读取下一个字符,即
\n
来自
println
,该字符显示
重试
您的解决方案是使用
扫描仪
-从
扫描开始设置扫描仪ner scanner=new scanner(System.in);
-然后使用
String result=scanner.nextLine();j=result.charAt(0);
代替
j=(char)System.in.read();
您仍将按enter键,但它将一次读取一行,因此它将保持不变。我先按1,然后按enter键。不按System.in.read()需要按enter键才能接受字符输入?@BonnyMahajan尝试在不按enter键的情况下运行。@Destruktor能否告诉我如何在1之后不按enter键而接受输入
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");}

    }
}
}