Java 将输入限制为仅打印最多16个位置的斐波那契序列?
我有一个程序,打印出斐波那契序列,直到给定的输入。用户输入一个数字,然后打印出一系列的数字 例如:输入=4个打印1 2 3 我想将程序限制为只允许输入1-16。我现在的方式是打印序列,然后打印错误消息?有什么建议吗?多谢各位Java 将输入限制为仅打印最多16个位置的斐波那契序列?,java,Java,我有一个程序,打印出斐波那契序列,直到给定的输入。用户输入一个数字,然后打印出一系列的数字 例如:输入=4个打印1 2 3 我想将程序限制为只允许输入1-16。我现在的方式是打印序列,然后打印错误消息?有什么建议吗?多谢各位 public class FibonacciGenerator { private int fibonacci = 1; public FibonacciGenerator() { } public int Fibonacci
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个数字似乎是一个奇怪的限制。为什么?太好了,我更正了大写字母。我知道,我只是忘了。这就是我想要的方式。太好了,我更正了大写字母。我知道,我只是忘了。这就是我想要的方式。