2014-01-23 3 views
-6

게임의 최고 점수 판을 시간에 따라 분류하는 기능입니다.정렬 문제 (진술이 아님)

public void sort() 
{ 
    boolean unsorted = true; 
    int i; 

    for (; unsorted; i < this.inputArray.length - 1) 
    { 
     unsorted = false; 
     i = 0; continue; 
     if (Integer.parseInt(this.inputArray[i][1]) <= Integer.parseInt(this.inputArray[(i + 1)][1])) 
     { 
      int tempTime = Integer.parseInt(this.inputArray[i][1]); 
      String tempName = this.inputArray[i][0]; 
      this.inputArray[i][1] = this.inputArray[(i + 1)][1]; 
      this.inputArray[i][0] = this.inputArray[(i + 1)][0]; 
      this.inputArray[(i + 1)][1] = String.valueOf(tempTime); 
      this.inputArray[(i + 1)][0] = String.valueOf(tempName); 
      unsorted = true; 
     } 
     i++; 
    } 
} 

문제는, 즉 IDE는 '만약'에 '에 대한'루프와 "도달 할 수없는 문"오류에서 "하지 않는 문"오류가 발생합니다.

아무도 도와 줄 수 있습니까? 즉,이 구문이되지는 않는다 -

+0

를 통해 각 반복 한 후 호출 나는 문제가 '에 대한'루프의 초기화에 생각합니다. 나는 큰 자바 녀석이 아니지만 C 변형으로 무작위로 세미콜론을 사용하면 문제가 발생할 수 있습니다. –

+2

나는 이것이 무엇인지 모른다. 그러나 그것은 틀렸다. 처음에는'계속하기 '후에 아무 것도 얻을 수 없습니다. 'for' 루프의 문장이 주어지면'while' 루프가 훨씬 더 읽기 쉽게 만들어 줄 것 같습니다. – nhgrif

+0

for 문 자습서를보고 리팩토링을 시도하십시오. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html – mdewitt

답변

2

첫 번째 오류는

i < this.inputArray.length - 1 

당신이 실행할 수있는 일이 아니기 때문에입니다. 그러나 for 루프의 괄호 안에있는 세 번째 부분은 루프의 각 반복 끝에 실행될 명령문입니다.

continue; 

수단은 다음 반복으로 다시 루프를 시작하기 때문에

번째 오류이다. 즉, continue 이후의 모든 항목은 절대로 도달 할 수없는 데드 코드입니다. 컴파일러는 실수 일 뿐인 것을 막기 위해 노력하고 있습니다.

0

는 도달 할 수없는 문 : 당신은 내가 다음 = 0, 그리고 계속 할당하고,

for 루프 구문이 올바르지 않습니다 귀하의 난, 난이 0보다 다른 아무것도 없을 것 끝에 ++, 그래서 만약 절에 연결할 넣어 물론 :

for (initialization; termination; 
    increment) { 
    statement(s) 
} 
  • 초기화 표현식은 루프 초기화; 루프가 시작될 때 한 번 실행됩니다.
  • 종료 표현식이 거짓으로 평가되면 루프가 종료됩니다.
  • 증분 발현 루프 (오라클 문서에서 발췌)