因此,我有一个简单的Queue实现,并且我一直在尝试为此创建一个switch case语句。 现在可以正常工作了。 我的问题是它将询问您是否要继续,但是即使您按“ n”代表“否”,它仍然会继续。

另一件事是,在case3中,我无法用随机数填充数组。

代码:实现:

class Que{

    private int size;
    private int front = -1;
    private int rear = -1;
    private Integer[] queArr;

    public Que(int size) {
        this.size = size;
        queArr = new Integer[size];
    }
    public void insert(int item) {
        if(rear == size-1) {
            System.out.println("queue is overflowing");
        }
        else if(front==-1) {
            rear++;
            queArr[rear] = item;
            front = rear;
        }
        else {
            rear++;
            queArr[rear] = item;
        }
    }
    public void delete() {
        if(front == -1) {
            System.out.println("queue is underflow");
        }
        else if(front==rear) {
            System.out.println("removing "+queArr[front]);
            queArr[front] = null;
            front--;
            rear--;
        }
        else {
            System.out.println("removing "+queArr[front]);

            queArr[front] = null;

            for(int i=front+1;i<=rear;i++) {
                queArr[i-1]=queArr[i];
            }
            rear--;
        }

    }
    public void display() {
        if(front==-1)
            System.out.println("queue is empty");
        else
        {
            System.out.println("queue is:");
            for(int i=front;i<=rear;i++) {
                System.out.print(queArr[i]+"\t");
            }
        }
    }
}

考试:

import java.util.Random;

import java.util.Scanner;

public class TestQueue {

public static void main(String[] args) {

    System.out.println("Hi user!");

    Scanner scan = new Scanner(System.in);

    System.out.println("please enter size of queue array");

    int size = scan.nextInt();

    Que que = new Que(size);

    char ch;

    do{

        System.out.println("\nQueue operations \n");

        System.out.println("1. insert");

        System.out.println("2. delete");

        System.out.println("3. random");

        int choice = scan.nextInt();

        switch(choice)

        {

            case 1: System.out.println("enter integer element to insert");

                que.insert(scan.nextInt());

                break;

            case 2:que.delete();

                break;

            case 3:  Random rand = new Random();

                rand.nextInt(size);

                break;

        }

        que.display();

        System.out.println("\nDo you want to continue (Type y or n) \n");

        ch = scan.next().charAt(0);

    }

    while(ch!='N' || ch!='n');

}

}

我还需要一些有关如何读取和显示数组中所有质数的指针。 但这可能是另一个讨论的主题。

我认为我在测试结束时弄糟了while语句。

===============>>#1 票数:6 已采纳

while(ch!='N' || ch!='n');

始终为true(对于ch任何值)。

你需要

 while(!(ch=='N' || ch=='n'));

  ask by Sipko translate from so

未解决问题?本站智能推荐:

4回复

Java switch语句问题

该计划的目的是让用户输入三个考试成绩,并将其平均成绩和字母成绩返回给他们。 它当前编写的方式给出了'public static String getLetterGrade ..'行的错误,我不知道为什么会这样。
5回复

在Java中使用switch的问题

我不知道为什么它总是返回arg1的值。 我正在建立一个体重转换器。 我弄乱了逻辑,但看不到哪里。 任何帮助,将不胜感激。
4回复

此switch语句有什么问题? [关闭]

以下代码返回错误,但是我不确定为什么。 需要进行哪些更改才能进行编译?
3回复

(Java)使用Enter切换/关闭

我需要有关开关的帮助,这是我需要帮助的部分代码。 在下一个情况下,我如何在P之后获得一个“输入”。我想要的是,如果用户只是按下Enter键,则程序将播放另一回合。 我正在考虑做String.valueOf(kb.nextLine())但这不起作用。 谢谢您的帮助。
6回复

Java灯泡开关问题

我有一个包含5个灯泡的数组列表。 我可以这样遍历他们 没有关闭/打开灯泡。 效果是它的邻近灯泡也有开关。 我的问题是,当切换最后一个或第四个灯泡时,我需要确定其邻居。 由于我有5个灯泡,因此可以使用。 对于3,它将给我2和4作为邻居。 但是当切换4时,它会给我3和0
4回复

Java开关案例声明问题

我正在尝试在Android应用中使用switch语句,在这里我必须检查一个整数是否等于Enum的某些值。代码如下所示: 我的switch语句如下所示: 但是我收到这样的错误消息:“类型不匹配:无法从RPCCommucatorDefines.RPCServerResponseCod
1回复

Android Java-切换问题

我正在测试一个需要连接到服务器并保存其响应的测试应用程序。 响应实际上是一个数据包,所以我需要了解它是什么类型的数据包并执行它。现在,我可以接收响应,计算数据包,现在我需要在需要的切换方法方面提供一些帮助获取数据包类型。 这是我正在使用的代码: 我需要一种方法可以在检查所有开关后
1回复

Java switch语句和枚举的有趣结果[关闭]

在调试我的代码时,我在枚举时使用switch语句遇到了这个有趣的场景。 对我而言,它似乎不应该编译并阻止我犯下这个愚蠢的错误,是否有一些我可以使用这种语法的地方? 我的java版本是1.6.0_10 为完整起见,此代码的输出如下。
5回复

Java开关/案例与问题

我一直在尝试使用java类模拟Stack 。 这是我的类构造函数: 但令我困惑的是,if块可以正常工作。 但是使用switch / case块无法编译。 错误说 和 对于切换块中的所有情况,都会重复此操作。 请在这里指出我是否遗漏任何东西。
1回复

Java randInt开关功能问题

我对Java比较陌生,并且正在为一个类项目工作。 这是系统的一部分,我在这一部分中一直遇到错误。 我收到的错误是:Test.Again.java:12:错误:找不到符号switch(randInt(0,9)符号:方法randInt(int,int)位置:类NumberTest