【问题标题】:Stuck in infinite loop? (Java) [closed]陷入无限循环? (Java)[关闭]
【发布时间】:2017-05-19 03:57:18
【问题描述】:

刚接触编程和处理一些 Project Euler 问题。我相信我陷入了无限循环。我已经在纸上解决了,一切似乎都很好。我错过了什么?

public class Euler2 {
    public static void main(String[] args) {
        int i = 1;
        int j = 2;
        int fib = 0;
        int sum = 2;

        //Sum of even Fibonacci numbers

        while(fib < 10);{
            fib = (i + j);
            if(fib % 2 == 0);{
                sum = sum + fib;
            }
            i = j; j = fib;
        }   
        System.out.println(sum);        
    }
}

【问题讨论】:

  • 首先你应该在你的while声明中去掉;while(fib &lt; 10);
  • if(fib % 2 == 0);{ 行同上(应该是 if (fib % 2 == 0) {)。
  • 啊啊啊我是个白痴。只需要第二(或更多)眼睛。欣赏!

标签: java


【解决方案1】:

您在 while 条件和不应该存在的大括号之间有一个分号,也许这就是导致问题的原因。

【讨论】:

  • 还有一个 ;不属于if 语句之后...
【解决方案2】:

这段代码应该可以工作。

public static void main(String[] args) {
    int i = 1;
    int j = 2;
    int fib = 0;
    int sum = 2;

    //Sum of even Fibonacci numbers

    while(fib < 10){
        fib = (i + j);
        System.out.println( "fib value is: " + fib); 

        if(fib % 2 == 0){
            sum = sum + fib;
        }
        i = j; j = fib;
    }   
    System.out.println("total sum is: " + sum);        
}

【讨论】:

  • 我的意思是逻辑错误。
猜你喜欢
  • 2021-12-31
  • 2020-02-09
  • 2015-07-02
  • 2015-12-08
  • 1970-01-01
  • 2020-05-13
相关资源
最近更新 更多