피보나치수열 반복문으로 구하는건데
public class Main {
public static void main (String[] args){
int i = 40;
long startfibI = System.currentTimeMillis();
Fibonacci fib = new Fibonacci();
System.out.println("파보나치 수열 "+ i + "번째 값 : "+fib.fibI(i));
long endfibI = System.currentTimeMillis();
System.out.println("반복방법 수행 속도 : " +(endfibI-startfibI));
}
}
===========================================================
public class Fibonacci {
public int fibI(int n){
if(n < 0)
return 0;
else if(n <=1)
return n;
else{
int fn2 =0;
int fn1 =1;
for(int i=2 ; i<=n ; i++){
int fn = fn1 + fn2;
fn2 = fn1;
fn1 = fn;
}
}
return fn;
}
}
여기서 마지막에 fn; 이 부분이 오류나던데.. 어디서 잘못된거임??
http://blog.naver.com/littlepri212?Redirect=Log&logNo=100047685801
fn의 라이프사이클이 끝나서
라이프사이클은 뭐임..? 자바책보면서 예제문제 따라하는데 아직 라이프사이클 얘기도 못들어봄 ㅠㅠ
그니깐 블록영역에서 벗어난다고
int fn = fn1 + fn2;에서 int fn;를 if(n < 0)위에다 선언해
for문 안에서 fn을 선언했으니까 for문이 끝나면 fn이 사라지는거지. 귀찮으니 질문하지말고 직접 공부해라
예제는 저렇게만 되어있길래.. 그러니까 for문이 끝나면서 fn도 같이 끝나서 오류가 나는거죠?? for 밖에서fn을 선언해줘야하는거 맞나요?
예제가 병신인거지. 블록은 내부에서만 적용된다.
맞음. 해보면 또 질문 안해도 될걸 수정하는게 뭐 어렵다고 질문이야. 저리 꺼져
다들 고맙습니다