作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以代码应该不断地给出任何给定数字的斐波那契值,直到您输入“q”,但由于某种原因而不是停止,我收到一个错误,有人知道为什么吗?我知道如果你尝试解析一个字符串,它会导致错误,但我有“if(input != "q")”来阻止它,那么为什么它仍然发生?
测试人员类别:
import java.util.Scanner;
public class FibonacciTester
{
public static void main(String[] args)
{
String input = "1";
System.out.println("Input a positive integer that you want to find the fibonacci number for");
System.out.println("Type 'q' to quit");
Scanner in = new Scanner(System.in);
while (input != "q"){
System.out.print("Type in the positive integer");
input = in.next();
if(input != "q"){
int number = Integer.parseInt(input);
FibonacciV fibonacci = new FibonacciV(number);
number = FibonacciV.fibonacci(number);
System.out.println("The Fibonacci number: " + number);
}
}
}
}
类别
public class FibonacciV
{
FibonacciV(int x)
{
}
public static int fibonacci(int x)
{
if (x == 0) //Base case
{
return 0;
}
else if (x == 1) //Second base case
{
return 1;
}
else
{
return fibonacci(x-1)+ fibonacci(x-2); // recursive call
}
}
}
最佳答案
将 input != "q"
更改为 !input.equals("q")
。
了解更多关于how to compare strings的信息在java中。
您收到 NumberFormatException
是因为当输入为“q”(不是数字)时它正在运行 Integer.parseInt(input)
。代码之所以能够到达此语句,是因为您的字符串比较不正确。
关于java - 为什么我会收到 NumberFormatException 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52827389/
我是一名优秀的程序员,十分优秀!