一旦缓冲的读取器获取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);
}
}
}
答案 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; ='而不是'=='