一旦缓冲读取器获取测试用例值并创建 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);
}
}
}
最佳答案
你的 for
循环是错误的。它只会在 testCases 为 1 时循环一次。
试试这个:
for( int loop1 = 0; loop1 < testCases; ++loop1 )
仅供引用 - 从 1
开始没有错一直到<= numIterations
,但是一般的编程约定是从值 0
开始直到< numIterations
因为这就是数组的工作方式(第一个元素位于索引 0
,然后第 10 个元素位于索引 9
)。
关于java - 我的 Java 程序意外终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890603/