我理解这个异常背后的原因,并且我多次检查了我的代码。但是,我认为我的索引在索引范围内。有人能帮我吗?附注:假设while循环的条件将得到满足。也就是说,num最多为3。
int suit;
int num = 0;
String[] suitList = {"c", "d", "h", "s"};
for (int i = 0; i < 5; i++){
while (suitList[num].equals(testHand[i].substring(0,1)) == false){
num++;
}
suit = num + 1;
} 发布于 2020-04-16 15:55:00
对于for循环的每次迭代,应将num重置为0:
int suit;
String[] suitList = {"c", "d", "h", "s"};
for (int i = 0; i < 5; i++){
int num = 0;
while (suitList[num].equals(testHand[i].substring(0,1)) == false){
num++;
}
suit = num + 1;
}否则,它可能会在for循环的第一次迭代后超过3。
顺便说一句,你的情况可以改善如下:
int suit;
String[] suitList = {"c", "d", "h", "s"};
for (int i = 0; i < 5; i++){
int num = 0;
while (!testHand[i].startsWith(suitList[num]))) {
num++;
}
suit = num + 1;
}https://stackoverflow.com/questions/61245174
复制相似问题