3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
在整個(gè)數(shù)組上進(jìn)行迭代后,您缺少停止循環(huán)的條件。例如:
while (!done) {
tmp = PinsNums[i];
if (tmp.equals(keyPadNumsEntered)) {
result = PinNames[i];
loggedOn = true;
done = true;
} else {
++i;
result = "no logon";
}
if (i == PinsNums.length) {
done = true;
}
}

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
您正在使用的while循環(huán)和完成的布爾值都完全沒(méi)有必要。您收到此異常的原因是,如果'tmp'永遠(yuǎn)不等于'keyPadNumsEntered',該怎么辦?它將繼續(xù)進(jìn)行迭代,從而導(dǎo)致IndexOutOfBoundsException。這將作為for循環(huán)更具可讀性,并且應(yīng)防止出現(xiàn)異常:
public void exportVarifaction(){
String[] PinsNums = new String[]{"1415","1678","1923"};
String[] PinNames = new String[]{"admin","test","test1"};
String tmp;
for (int i = 0; i < PinsNums.length; i++) {
tmp = PinsNums[i];
if (tmp.equals(keyPadNumsEntered)) {
result = PinNames[i];
loggedOn = true;
break;
}
}
if (!loggedOn) {
result = "no logon";
}
}

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
您需要通過(guò)檢查變量i和數(shù)組的長(zhǎng)度來(lái)檢查數(shù)組上的循環(huán)是否完成。
while (!done && i<PinsNums.length) {
tmp = PinsNums[i];
if (tmp.equals(keyPadNumsEntered)) {
result = PinNames[i];
loggedOn = true;
done = true;
} else {
++i;
result = "no logon";
}
}
添加回答
舉報(bào)