2017-01-04 3 views
-1

Новое в программировании и работе над некоторыми проблемами Project Euler. Я верю, что застрял в бесконечном цикле. Я работал на бумаге, и все было хорошо. Что мне не хватает?Застрял в бесконечном цикле? (Java)

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);   
    } 
} 
+12

Прежде всего, вы должны избавиться от ',' 'в вашем while' заявлении:' в то время как (выдумка <10); ' – user2004685

+0

http://stackoverflow.com/questions/2610679/whats-wrong- with-this-while-loop – Michael

+7

Ditto для 'if (fib% 2 == 0); {' line (который должен быть 'if (fib% 2 == 0) {'). – mc10

ответ

1

У вас есть точка с запятой между условием при и фигурной скобкой, которые не должны быть там, возможно, это то, что является причиной проблемы.

+3

Также a; не принадлежит после оператора 'if' ... – CraigR8806

-1

Этот код должен работать.

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);   
} 
+0

Я имел в виду логические ошибки. –

Смежные вопросы