Given the code fragment:
public class Test {
public static void main(String[] args) {
boolean isChecked = false;
int arry[] = {1, 3, 5, 7, 8, 9};
int index = arry.length;
while (~code1~) {
if (arry[index - 1] % 2 == 0) {
isChecked = true;
}
~code2~
}
System.out.print(arry[index] + ", " + isChecked);
}
}
Which set of changes enable the code to print 1, true?
A. Replacing
B. Replacing
C. Replacing
D. Replacing
題解
程式最後的arry[index]需為1;isChecked需為true。一開始index的值為6。
選項A,可以成功讓index變數在跳出while迴圈的時候數值為0,並且修改isChecked變數的值為true。
選項B,理由同選項A。
選項C,while迴圈只執行了一次,並讓index變數儲存的值修改成5,isChecked的值因為arry[5] % 2為1,因此輸出結果會變成:
9, false
選項D,index並非是布林變數,因此無法直接作為while迴圈的條件式,會發生編譯錯誤。