Given:



What is the result?

A. Prints 1 2 3 4 5 once
B. Prints 1 3 5 once
C. Prints 1 2 3 4 5 five times
D. Prints 1 2 3 4 5 six times
E. Compilation fails

題解

第3行宣告了物件變數i,第7行的for迴圈又宣告了一個變數i,因此for的變數i會遮蔽掉物件的變數i。無論for怎麼對它的變數i做任何更動,都不會影響到物件的變數i。

物件變數若沒有給定初始值,則預設為0。第6行開始的while迴圈與第11行的「i++;」決定了while迴圈的執行次數,i的變化為0,1,2,...,5,6,只有在小於等於5的時候才會執行while迴圈的內容,因此第7行的for迴圈被執行了6次。每執行一次for迴圈,會印出「1 2 3 4 5 」。