我百度到的说for嵌套if语句的break,是终止for循环,
那这里就应该是跳出了for(int j=0;j<chs.length;j++)这个循环,这个跳出循环是直接跳出该for循环,
去执行外面的那个循环for(int i=0;i<input.length;i++),执行i++,再判断i<input.length,
而不再执行j++,然后判断j<chs.length,了吗?
还是会继续j++,执行这个for(int j=0;j<chs.length;j++)循环
代码如下;
/**
* 比较玩家输入的字母序列和程序所生产的字母序列,逐一比较字符和位置,并记载比较结果
* @param chs 程序生成的序列
* @param input 玩家输入的字符序列
* @return 存储比较的结果,返回值int数组的长度为2,其中,
* 索引为0的位置用于存放完全猜对的字母个数(字符和位置均正确),
* 索引为1的位置用于存放才对的字母个数(字符正确,但是位置不正确)
*/
public static int[] check(char[] chs,char[] input) {
int[] result=new int[2];
for(int i=0;i<input.length;i++) {
for(int j=0;j<chs.length;j++) {
if(input[i]==chs[j]) {
result[1]++;
if(i==j) {
result[0]++;
}
break;
}
}
}
return result;
}