1

一旦缓冲读取器获取测试用例值并创建哈希图,程序就会终止。它不进入循环。谁能解释为什么?

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


}   
}
}
4

2 回答 2

4

你的for循环是错误的。只有当 testCases 为 1 时,它才会循环一次。

试试这个:

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

1仅供参考 - 从 开始到 直到没有错<= numIterations,但是一般的编程约定是从 value 开始0并一直到,< numIterations因为这就是数组的工作方式(第一个元素在 index 0,然后第 10 个在 index 9)。

于 2013-06-03T05:44:32.480 回答
1

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

我的意思是使用 '<=' 而不是 '=='

于 2013-06-03T05:45:24.157 回答