意外终止了我的Java程序

时间:2013-06-03 05:41:18

标签: java hashmap

一旦缓冲的读取器获取testcase值并创建一个hashmap,程序就会终止。它不会进入循环。任何人都可以解释原因吗?

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);


}   
}
}

2 个答案:

答案 0 :(得分:4)

您的for循环错误。只有在testCases为1时才会循环一次。

请改为尝试:

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

仅供参考 - 从1开始到<= numIterations开始没有任何问题,但是一般的编程惯例是从值0开始直到< numIterations,因为那样是数组如何工作(第一个元素在索引0,然后第10个在索引9)。

答案 1 :(得分:1)

使用for( int loop1 = 1; loop1 <= testcases; loop1++)

我的意思是使用'&lt; ='而不是'=='