2013-06-03 4 views
1

버퍼가있는 판독기가 testcase 값을 가져 와서 해시 맵을 생성하자 마자 프로그램이 종료됩니다. 루프에 들어 가지 않습니다. 왜 그 이유를 설명 할 수 있습니까?Java 프로그램이 예기치 않게 종료되었습니다.

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.util.*; 

class anagram { 

public static void main(String[] args) throws Exception { 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
int testcases = Integer.parseInt(br.readLine()); 
HashMap <String, Integer> mymap = new HashMap < String, Integer >(); 
for(int entry = 97; entry < 123; entry++){ 
    String ekey = String.valueOf((char)entry); 
    mymap.put(ekey , 0); 
} 

for(int loop1 = 1; loop1 == testcases; loop1++){ 

    String a = br.readLine(); 
    String b = br.readLine(); 

    System.out.println(a); 
    System.out.println(b); 


} 
} 
} 
+7

'loop1은의 '< ='<= testcases' –

답변

4

for 루프가 잘못되었습니다. 그것은 오직 루프를 한 번 테스트 케이스 인 경우에만 1

대신이 시도됩니다 참고

for(int loop1 = 0; loop1 < testCases; ++loop1) 

-1에서 시작 <= numIterations까지가는 아무 문제가 있지만 일반적으로 프로그래밍 규칙은 시작하는 것입니다 없다 값이 0이고 배열이 작동하는 방식이므로 < numIterations까지 이동합니다 (첫 번째 요소는 인덱스 0이고 그 다음 10 번째는 인덱스 9입니다).

+0

감사 톤을 사용하는 것을 의미했다 무엇 for(int loop1 = 1; loop1 <= testcases; loop1++)

. 그 일. 매우 당황스런 실수! –

+0

하루 종일 똑같은 코드를 쳐다 보았다면, 항상 우리에게 최고의 시간이 될 것입니다. 실제로 거기에있는 것 위에 눈이 번쩍이고 뇌는 네가 거기에 두려고했던 것을 보았다. ;) –

+0

예 알아요. 나는 일반적으로 0에서 시작한다. 고마워요! –

관련 문제