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 with index > 0 and replacing with index--;
B. Replacing with index > 0 and replacing with --index;
C. Replacing with index > 5 and replacing with --index ;
D. Replacing with index and replacing with --index ;

題解

程式最後的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迴圈的條件式,會發生編譯錯誤。