Java 如何使程序返回到某一行?

Java 如何使程序返回到某一行?,java,eclipse,if-statement,Java,Eclipse,If Statement,在这个任务中,我必须使用if语句来选择你自己的结束游戏,我想这样做,当用户输入某个选项时,它将转到下一个语句,但问题是该语句后面是我想添加的一个语句后面是一些语句,这是我到目前为止得到的 System.out.println("senario1" + "\n" + "\n1) choice1" + "\n2) choice2&quo

在这个任务中,我必须使用if语句来选择你自己的结束游戏,我想这样做,当用户输入某个选项时,它将转到下一个语句,但问题是该语句后面是我想添加的一个语句后面是一些语句,这是我到目前为止得到的

System.out.println("senario1"
                + "\n"
                + "\n1) choice1"
                + "\n2) choice2");
        int choice3 = key.nextInt();

if (choice3 == 1)
        {
System.out.println("senario2"
                + "\n"
                + "\n1) choice3"
                + "\n2) choice4"
                + "\n3) choice5");
        int choice4 = key.nextInt();
            if (choice4 == 3)
            {

            }
        }
        else if (choice3 == 2)  
        {
        System.out.println("senario3"
                + "\n"
                + "\n1) choice6."
                + "\n2) choice7."
                + "\n3) choice8."
                + "\n4) choice9.");
        }
我想这样做,如果用户选择choice3,它将把它们发送给senario3,而不是继续转发。我试着做了其中一个,但我想不出来,从阅读中我认为这不是正确的解决方案


我使用的是Java,我的IDE是Eclipse。

我不明白你想做什么。但请看一下函数和while/for循环。您可以将某些行(块)作为函数“安全”并调用它。您可以多次调用该函数

例如:

public void numOne()
{
    System.out.println("First function");
}

public void numTwo()
{
    System.out.println("Secondfunction");
}
你叫他们:

numOne();
numTwo();
numOne();

我希望我帮助了你。如果这有助于给我提供更多的上下文,并尝试更好地解释您的问题。

要这样做,请将您的场景选择放在类似函数的
方法中。所以每次你想调用一个特定的场景时,你可以引用这个函数来保存你想要的场景

//Define scanner outside method for all methods to access 
static Scanner key = new Scanner(System.in);

//First method for the first choice scenario
public static void choice1(){
   System.out.println("senario2" + "\n" + "\n1) choice3" + "\n2) choice4" + "\n3) choice5");
   int choice4 = key.nextInt();
   if (choice4 == 3 ){
       choice2(); //Calls the second choice method which takes the program to the second choice
    }
}

//Second method for the second choice scenario
public static void choice2(){
   System.out.println("senario3" + "\n" + "\n1) choice6." + "\n2) choice7." + "\n3) choice8." + "\n4) choice9.");
}
然后在主要方法中:

System.out.println("senario1" + "\n" + "\n1) choice1" + "\n2) choice2");
int choice3 = key.nextInt();

if (choice3 == 1) {
  choice1(); //Calls first method to go to
} else if (choice3 == 2) {
  choice2(); //Calls the second method to go to
}
将您的场景选择放在方法中,将使您能够在任何时候根据需要多次引用它们。在java中,您不能跳转到任何特定的行,因此使用
方法来访问所需的代码块

总共

static Scanner key = new Scanner(System.in);

public static void choice1(){
   System.out.println("senario2" + "\n" + "\n1) choice3" + "\n2) choice4" + "\n3) choice5");
   int choice4 = key.nextInt();
   if (choice4 == 3 ){
     choice2();
   }
}

public static void choice2(){
   System.out.println("senario3" + "\n" + "\n1) choice6." + "\n2) choice7." + "\n3) choice8." + "\n4) choice9.");
}

public static void main(String[] args) {
   System.out.println("senario1" + "\n" + "\n1) choice1" + "\n2) choice2");
   int choice3 = key.nextInt();
   if (choice3 == 1) {
      choice1();
   } else if (choice3 == 2) {
      choice2();
   }

}

然后,您可以根据需要为每个场景添加更多方法

指令将一个接一个地执行。从B返回到A意味着您希望重复A和B之间的内容。要重复部分代码,请使用while语句:在Java中,代码一次执行一行,并按顺序移动;没有“简单”的方法可以直接返回到前一行代码,而Java绝对不适合这样做。你们班还没有讨论过循环或方法吗?如果没有,您需要以这样一种方式来构造
If/then
语句,使它们指向您想要的地方。顺便说一句,如果您想知道,
static
出现在扫描程序前面的原因是,具有静态属性的方法(如main方法)只能引用其他静态属性。这可能比您正在学习的有点超前,但总体而言,为了能够引用代码块,需要将代码块放入一个方法中,以便您可以随时访问它。