如何正确使用goto语句
如何正确使用goto语句
我正在上高中AP计算机科学课程。
我决定在我们的实验中插入一个goto
语句,只是为了玩一下,但是我遇到了这个错误。
Exception in thread "main" java.lang.Error: Unresolved compilation problems: Syntax error on token "goto", assert expected restart cannot be resolved to a variable at Chapter_3.Lab03_Chapter3.Factorial.main(Factorial.java:28)
我去Stackoverflow上的一个goto
问题找出如何正确使用它,并且我完全按照一个答案中演示的方法做了。我真的不明白为什么编译器想要一个assert
语句(至少我认为是这样),也不知道如何使用assert
。它似乎希望goto restart;
中的restart部分成为一个变量,但restart只是一个标签,将程序拉回到第10行,以便用户可以输入一个有效的int
。如果它希望restart成为一个变量,我该怎么做呢?
import java.util.*; public class Factorial { public static void main(String[] args) { int x = 1; int factValue = 1; Scanner userInput = new Scanner(System.in); restart: System.out.println("请输入一个非零、非负的值进行阶乘计算。"); int factInput = userInput.nextInt(); while(factInput<=0) { System.out.println("请输入一个非零、非负的值进行阶乘计算。"); factInput = userInput.nextInt(); } if(x<1)//这是另一种完成上面while循环的方式,我只是想开个玩笑。 { System.out.println("您输入的数字无效,请重试。"); goto restart; } while(x<=factInput) { factValue*=x; x++; } System.out.println(factInput+"! = "+factValue); userInput.close(); } }