Java 如何在程序中返回到较高的位置
我正在尝试用Java制作基于节点的大整数计算器,我想在操作后重新打印计算器的菜单。我曾想过使用goto,但它给出了一个错误,即goto字节是预期的 我是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
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中寻找类似的东西。这是最接近它的东西。永远不要这样做,哈哈