2014-01-19 13 views
0

피트를 미터와 미터로 바꾸고 피트로 변환하고 아래 표를 얻으려는 시도를하십시오. 이것은 내 첫 자바 프로그램이며 왜 "}"와 관련된 구문 오류가 발생하는지 알 수 없습니다.자바 : 토큰 구문 오류 "}"?

Feet Meters| Meters Feet 
1.0 0.305 | 20.0 65.574 
2.0 0.61 | 25.0 81.967 
… 
9.0 2.745 | 60.0 196.721 
10.0 3.05 | 65.0 213.115 

은 여기에 ... 내가 무슨

public class Hmwk { 
public static void main(String[] args){ 

public static double footToMeter(double foot){ 
    return 0.305 * foot; 
} 
public static double meterToFoot(double meter){ 
    return 3.279 * meter; 
} 
for (double i = 1.0; i <11; i++){ 
    System.out.printf(i+footToMeter(i)+"|"+(i*5+15)+meterToFoot(i*5+15));} 
}} 

어떤을의 모든 도움을 많이 감사합니다.

+2

방법은 중첩 될 수 없습니다 (취향에 따라 다름). – SLaks

+0

'main' 메쏘드에 닫는 중괄호가없고'for' 메쏘드는 메쏘드 밖에 있습니다. –

+1

그건 정말 추악한 코드예요. 중괄호는 나머지 코드와 같은 줄에 머물러있는 것은 아닙니다. – Christian

답변

1

잘못된 위치에 중괄호가 많이 있습니다. 특히 footToMetermeterToFootmain 메소드 내부에 선언되어 있으며 이는 잘못되었습니다. 여기에 올바른 중괄호 배치하여 코드 : 일반적으로

public class Hmwk 
{ 

    public static void main(String[] args) 
    { 
     for (double i = 1.0; i <11; i++) 
     { 
      System.out.printf(i+footToMeter(i)+"|"+(i*5+15)+meterToFoot(i*5+15)); 
     } 
    } 

    public static double footToMeter(double foot) 
    { 
     return 0.305 * foot; 
    } 

    public static double meterToFoot(double meter) 
    { 
     return 3.279 * meter; 
    } 
} 

이 방법은 자바에서 중첩 될 수 없습니다. 즉, 다른 메소드에서 선언 할 수있는 메소드가 없습니다.

0

void 메인에 닫는 중괄호가 없습니다. 'public static double footToMeter'앞에 '}'를 넣고 괄호를 닫은 후 닫는 괄호를 삭제하십시오. for

+1

그는'}'을 닫았습니다. 단지'main' 내에 메소드를 선언했기 때문입니다. – csmckelvey

+0

닫는 중괄호는 for 루프 끝에 숨겨져 있지만 거기에 있습니다. – ApproachingDarknessFish

2

들여 쓰기 코드가 마음에 들지 않으면 작은 팁이 있습니다. 그러면 코딩이 도움이되지 않을 수 있습니다.

가혹한 것처럼 들리 겠지만, 처음 프로그램을 작성하기 전에 코드 구조가 무엇인지 알아야한다는 것을 진심으로 믿습니다. 불행히도 학교와 코스는이 사실을 완전히 숨기거나 무시하는 경향이 있습니다. 나도 알아, 나는 중학교 때 이것을 보았다. 선생님에게 코드를 적절히 형식화하라는 말은 좋은 생각이 아니다.

public class Hmwk { 

    public static double footToMeter(double foot){ 
     return 0.305 * foot; 
    } 

    public static double meterToFoot(double meter){ 
     return 3.279 * meter; 
    } 

    public static void main(String[] args){ 

     for (double i = 1.0; i <11; i++){ 
      System.out.printf(i + footToMeter(i) + "|" + (i*5+15) + meterToFoot(i*5+15)); 
     } 

    } 
} 
  1. 자바, 당신은 방법 내부 방법을 가질 수 없습니다.
  2. 코드를 들여 쓰기하면 쉽게 문제를 찾을 수 있습니다.
  3. 브래킷이 여는 괄호를 제외하고 별도의 라인에 머물 것을 의미한다