Java 将输入限制为仅打印最多16个位置的斐波那契序列?

Java 将输入限制为仅打印最多16个位置的斐波那契序列?,java,Java,我有一个程序,打印出斐波那契序列,直到给定的输入。用户输入一个数字,然后打印出一系列的数字 例如:输入=4个打印1 2 3 我想将程序限制为只允许输入1-16。我现在的方式是打印序列,然后打印错误消息?有什么建议吗?多谢各位 public class FibonacciGenerator { private int fibonacci = 1; public FibonacciGenerator() { } public int Fibonacci

我有一个程序,打印出斐波那契序列,直到给定的输入。用户输入一个数字,然后打印出一系列的数字

例如:输入=4个打印1 2 3

我想将程序限制为只允许输入1-16。我现在的方式是打印序列,然后打印错误消息?有什么建议吗?多谢各位

public class FibonacciGenerator 
{
    private int fibonacci = 1;

    public FibonacciGenerator()
    {

    }

    public int Fibonacci(int number)
    {
        if(number == 1 || number == 2)
        {
            return 1;
        }
        else if (number > 16)
        {
            System.out.println("Error must select 1-16");
        }
        else
        {
            int fib1=1, fib2=1;
            for(int count= 3; count < 17 && count <= number; count++)
            {
                fibonacci = fib1 + fib2;
                fib1 = fib2;
                fib2 = fibonacci;
            }
        }
    return fibonacci;
    }
}
公共类FibonacciGenerator
{
私有整数斐波那契=1;
公共FibonacciGenerator()
{
}
公共整数斐波那契(整数)
{
如果(数字==1 | |数字==2)
{
返回1;
}
否则,如果(数量>16)
{
System.out.println(“错误必须选择1-16”);
}
其他的
{
int fib1=1,fib2=1;

对于Fibonacci函数中的(int count=3;count<17&&count,第一行应该是if语句,以查看数字是否大于16。如果大于16,则可以抛出错误

以下是它应该是什么:

public int Fibonacci(int number) {
    if (number > 16 || number < 1) throw new IllegalArgumentException("Error. Must select 1-16.");
    // Rest of the code
}
public int Fibonacci(整数){
如果(数字>16 | |数字<1)抛出新的IllegalArgumentException(“错误。必须选择1-16”);
//代码的其余部分
}

在Fibonacci函数中,第一行应该是if语句,以查看数字是否大于16。如果大于16,则可以抛出错误

以下是它应该是什么:

public int Fibonacci(int number) {
    if (number > 16 || number < 1) throw new IllegalArgumentException("Error. Must select 1-16.");
    // Rest of the code
}
public int Fibonacci(整数){
如果(数字>16 | |数字<1)抛出新的IllegalArgumentException(“错误。必须选择1-16”);
//代码的其余部分
}

建议不要让方法或变量以大写字母开头,按照惯例,大写字母仅用于类

此外,在将变量传递给方法之前,您应该先验证
输入
变量

我的意思是:

if (input > 16 || input < 1) {
    System.out.println("Enter a number between 1-16");
}
else {

    for(int fibCount = 1; fibCount <= input; fibCount++)
    {
        int sequence = newNumber.Fibonacci(fibCount);
        System.out.print(sequence);
    } 
}
if(输入>16 | |输入<1){
System.out.println(“输入一个介于1-16之间的数字”);
}
否则{

对于(int fibCount=1;fibCount,建议不要让方法或变量以大写字母开头,按照惯例,大写字母仅用于类

此外,在将变量传递给方法之前,您应该先验证
输入
变量

我的意思是:

if (input > 16 || input < 1) {
    System.out.println("Enter a number between 1-16");
}
else {

    for(int fibCount = 1; fibCount <= input; fibCount++)
    {
        int sequence = newNumber.Fibonacci(fibCount);
        System.out.print(sequence);
    } 
}
if(输入>16 | |输入<1){
System.out.println(“输入一个介于1-16之间的数字”);
}
否则{

对于Fibonacci函数中的(int fibCount=1;fibCount,对于不等于1和2的数字。将始终调用return语句
return Fibonacci;
。这就是错误消息与序列一起打印的原因

为了避免这种情况,在将变量
输入传递给斐波那契函数之前,您可以使用@Frakcool方法验证变量
。或者,您可以使用do while循环来执行此操作(强制用户重试)

在其他课堂上也一样

FibonacciGenerator.upper_limit 

在Fibonacci函数中,对于不等于1和2的数字,将始终调用return语句
return Fibonacci;
。这就是错误消息与序列一起打印的原因

为了避免这种情况,在将变量
输入传递给斐波那契函数之前,您可以使用@Frakcool方法验证变量
。或者,您可以使用do while循环来执行此操作(强制用户重试)

在其他课堂上也一样

FibonacciGenerator.upper_limit 

这似乎不起作用。它仍在打印斐波那契序列和错误消息。您希望用户不要输入大于16的数字,还是希望斐波那契函数不接收大于16的数字?如果是后者,则是我的解决方案。如果不是,请参阅@Frakcool的解决方案。好的,我的意思是您可以做更多e输入数字的广泛检查条件,但在这种情况下,被要求检查数字是否大于16。哎呀,我搞砸了。感谢您在我@chieftwoils上重复检查。这似乎不起作用。它仍在打印斐波那契序列,然后是错误消息。您希望用户不要输入数字吗大于16或者你希望斐波那契函数不接收大于16的数字吗?如果是后者,那就是我的解决方案。如果不是,请参阅@Frakcool的解决方案。我的意思是,你可以对输入的数字进行更广泛的检查,但在这种情况下,该人要求只检查数字是否大于16。天哪,我搞砸了向上。感谢您仔细检查我@chieftwopinels。首先,Java方法名称是以小写字母开头的驼峰大小写(因此,
fibonacci
,而不是
fibonacci
)。其次,16个数字似乎是一个奇怪的限制。为什么?首先,Java方法名称是以小写字母开头的驼峰大小写(所以,
fibonacci
而不是
fibonacci
)。第二,16个数字似乎是一个奇怪的限制。为什么?太好了,我更正了大写字母。我知道,我只是忘了。这就是我想要的方式。太好了,我更正了大写字母。我知道,我只是忘了。这就是我想要的方式。