如何正确使用转到语句
我正在上高中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上的一个问题,以了解如何正确地做到这一点,我完全按照其中一个答案中演示的那样做了。我真的不明白为什么编译器想要一个语句(至少这是我假设它想要的),我也不知道如何使用。它似乎希望重新启动部分是一个变量,但重新启动只是一个标签,它将程序拉回第10行,以便用户可以输入有效的。如果它希望重新启动成为一个变量,我该怎么做?goto
assert
assert
goto restart;
int
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("Please enter a nonzero, nonnegative value to be factorialized.");
int factInput = userInput.nextInt();
while(factInput<=0)
{
System.out.println("Enter a nonzero, nonnegative value to be factorialized.");
factInput = userInput.nextInt();
}
if(x<1)//This is another way of doing what the above while loop does, I just wanted to have some fun.
{
System.out.println("The number you entered is not valid. Please try again.");
goto restart;
}
while(x<=factInput)
{
factValue*=x;
x++;
}
System.out.println(factInput+"! = "+factValue);
userInput.close();
}
}