Java 如何在程序中返回到较高的位置

Java 如何在程序中返回到较高的位置,java,Java,我正在尝试用Java制作基于节点的大整数计算器,我想在操作后重新打印计算器的菜单。我曾想过使用goto,但它给出了一个错误,即goto字节是预期的 我是java新手,有人能帮我完成下面的演示代码吗- up: System.out.println("YOU HAVE FOLLOWING CHOICES : "); System.out.println("1. ADDITION"); System.out.println("2. SUBTRACTION

我正在尝试用Java制作基于节点的大整数计算器,我想在操作后重新打印计算器的菜单。我曾想过使用goto,但它给出了一个错误,即goto字节是预期的

我是java新手,有人能帮我完成下面的演示代码吗-

up:
        System.out.println("YOU HAVE FOLLOWING CHOICES : ");
        System.out.println("1. ADDITION");
        System.out.println("2. SUBTRACTION ");

int i=s.nextInt();

        System.out.println("ENTER FIRST NUMBER ");
        int a=s.nextInt();

        System.out.println("ENTER SECOND NUMBER ");
        int b=s.nextInt();
        int result = 0;
switch(i)
        {
            case 1:
                result=a+b;
                break;
            case 2:
                result=a-b;
                break;
default:
    goto up;
}

谢谢,我只想重新打印菜单。

您应该使用一个简单的while循环。当用户键入除1或2以外的内容时,可以创建一个布尔值作为运行条件,并将其设置为false。

您应该使用一个简单的while循环。当用户键入1或2以外的内容时,可以创建一个布尔值作为运行条件,并将其设置为false。

Java不支持转到,因为它是一个

此外,IMHO使用
goto
也可以


更好的方法是编写一个显示菜单的函数,并随时调用该函数。或者只是使用一个do-while循环

Java不支持转到,因为它是一个

此外,IMHO使用
goto
也可以


更好的方法是编写一个显示菜单的函数,并随时调用该函数。或者只是使用一个do-while循环

Java没有使用
goto
,因为它并不真正符合面向对象的概念(几年前,当我从Basic转换过来时,我遇到了同样的问题)。因此,为了实现某种循环,您必须重新考虑代码的逻辑

比如:

do {
    // add an exit option to the menu
    System.out.println("YOU HAVE FOLLOWING CHOICES : ");
    System.out.println("1. ADDITION");
    System.out.println("2. SUBTRACTION ");
    System.out.println("3. EXIT");

    // continue with the same logic you had before

} while (i !=3)
我希望这有帮助


注意:如果您在Java文档中查找关键字
goto
,您将看到它是保留的,但没有任何作用。他们可能会保留它作为这些情况的占位符

Java没有使用
goto
,因为它并不真正适合面向对象的概念(几年前,当我从Basic转换过来时,我遇到了同样的问题)。因此,为了实现某种循环,您必须重新考虑代码的逻辑

比如:

do {
    // add an exit option to the menu
    System.out.println("YOU HAVE FOLLOWING CHOICES : ");
    System.out.println("1. ADDITION");
    System.out.println("2. SUBTRACTION ");
    System.out.println("3. EXIT");

    // continue with the same logic you had before

} while (i !=3)
我希望这有帮助

注意:如果您在Java文档中查找关键字
goto
,您将看到它是保留的,但没有任何作用。他们可能会将其保留为这些情况的占位符

以下是一种在java环境中查看“goto”的方法,以您的代码为例:

public void addUp() {
    System.out.println("YOU HAVE FOLLOWING CHOICES : ");
    System.out.println("1. ADDITION");
    System.out.println("2. SUBTRACTION ");

    int i=s.nextInt();

    System.out.println("ENTER FIRST NUMBER ");
    int a=s.nextInt();

    System.out.println("ENTER SECOND NUMBER ");
    int b=s.nextInt();
    int result = 0;
    switch(i)
    {
        case 1:
            result=a+b;
            break;
        case 2:
            result=a-b;
            break;
        default: addUp();

    }
}
以下是一种在java环境中查看“goto”的方法,以您的代码为例:

public void addUp() {
    System.out.println("YOU HAVE FOLLOWING CHOICES : ");
    System.out.println("1. ADDITION");
    System.out.println("2. SUBTRACTION ");

    int i=s.nextInt();

    System.out.println("ENTER FIRST NUMBER ");
    int a=s.nextInt();

    System.out.println("ENTER SECOND NUMBER ");
    int b=s.nextInt();
    int result = 0;
    switch(i)
    {
        case 1:
            result=a+b;
            break;
        case 2:
            result=a-b;
            break;
        default: addUp();

    }
}

闻起来像homework@PhilipVaughn我也有这种感觉,但这仍然是一个问题:P@PhilipVaughn当前位置关于家庭作业需要帮助有什么问题吗?除了你应该在课堂上学习这些东西之外没有我想没有homework@PhilipVaughn我也觉得,,但这仍然是一个问题:P@PhilipVaughn当前位置关于家庭作业需要帮助有什么问题吗?除了你应该在课堂上学习这些东西之外没有我想没有警告:这是非常非常糟糕的做法。。。您将继续使用这种递归方式添加到运行时堆栈中。我的朋友,某种循环安全多了。我绝不会用这种方式编码,但是,它给人一种后进的错觉,因为你看到了你在哪里称呼自己……换句话说,你看到了这个概念,他正在Java中寻找类似的东西。这是最接近它的东西。永远不要这样做,洛尔警告:这是非常非常糟糕的做法。。。您将继续使用这种递归方式添加到运行时堆栈中。我的朋友,某种循环安全多了。我绝不会用这种方式编码,但是,它给人一种后进的错觉,因为你看到了你在哪里称呼自己……换句话说,你看到了这个概念,他正在Java中寻找类似的东西。这是最接近它的东西。永远不要这样做,哈哈