2010-02-08 2 views
2

Sooo 제 기능에 문제가 있습니다.Java 함수 기타 문제

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    else{ 
     return 3*x+1; 
    } 
    } 
    } 

글쎄 soo 내 문제는 : x가 짝수이면 x/2 OR이 홀수 인 경우 x를 반환합니다. 3x + 1을 반환합니다. 하지만 java를 컴파일하려고 할 때 ('else'와 'if') 나에게 무엇을해야할지 모르겠다. \

왜 else가 필요한가요?

+4

Eclipe와 같은 IDE를 사용하십시오. 일치하지 않는 괄호를 쉽게 찾아 낼 수 있습니다. – Thilo

+0

이것을 많이 호출하는 경우 큰 성능 향상을 위해 AND 연산을 수행하는 것이 좋습니다. –

+0

@ 존 T : 정말? – Thilo

답변

6

문제가 일치하지 않습니다.

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    } else { 
     return 3*x+1; 
    } 
} 
2

중괄호가 잘못 배치되었습니다.

static int syracuse(int x){ 
    if (x%2==0){ 
     return x/2; 
    } 
    else{ 
     return 3*x+1; 
    } 
} 

PS : 나는 자바 전문가가, 그래서 잘 모르겠어요 X/2 반환에 int로서 캐스트 할 수

+0

re int : 이미 int가됩니다. – pstanton

2
if (x%2==0){ 
     return x/2; 

변화 :

if (x%2==0){ 
     return x/2; 
}