阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104年高等三級暨普通考普通_資訊處理#28869
科目:程式設計
年份:104年
排序:0

題組內容

二、如下程式,使用堆疊(Stack)的概念來存放數字基底轉換的結果,轉換完成後,再 將 Stack 內的資料一一取出,作結果的顯示;請依程式中標號的說明,於程式中填 入適當的程式碼,以完成十進位數字轉換為二、四、八、十六等四種進位制的數值。 (每小題 3 分,共 15 分)void base10toBaseNum(int sourceNum, int targetBase)
{ String ss = "";
if (sourceNum < 0)
{ ss = ("轉換基底的數字必須大於等於零"); }
else if ((targetBase == 2) || (targetBase == 4) ||
(targetBase == 8) || (targetBase == 16))
{ char [] base16 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
ArrayList result = /* ⑴ 創造 ArrayList 物件 */;
for (int rr = /* ⑵ 設定迴圈起始狀態 */; rr > 0;
rr = /* ⑶ 改變控制變數 */)
{ result.add(/* ⑷ 加入餘數 0~F 的字元到 ArrayList */); }
ss = ("轉換" + sourceNum + "到基底" + targetBase + ": ");
for(int i = /* ⑸ 由後往前取出 ArrayList 內容資料 */; i--)
{ ss += ("" + result.get(i));
if ((i%4) == 0) { ss += (" "); }
}
ss += "
";
}
else { ss = ("轉換至的基底只能是 2, 4, 8, 16"); }
/* print out ss */
} // End of base10toBaseNum

申論題內容

⑸從最後加入的資料開始,一一取出存放在 ArrayList 中的資料(ArrayList 資料的
長度在 Java 中可使用 size()方法取得)

詳解 (共 3 筆)

詳解 提供者:moerstw
ArrayList.size() - 1; i >= 0
詳解 提供者:hchungw
要從 ArrayList 中從最後加入的資料開始一一取出,我們需要從 ArrayList 的最後一個元素開始迭代,直到第一個元素。在 Java 中,ArrayList 的第一個元素索引為 0,而最後一個元素的索引為 size() - 1。因此,迴圈的初始條件應該設置為 ArrayList 的大小減去1,並且在每次迭代中減少索引直到它達到0。
所以,從最後加入的資料開始一一取出的迴圈初始化應該是:

for(int i = result.size() - 1; i >= 0; i--)
這個迴圈從 ArrayList 的最後一個元素開始迭代,每次迭代將索引 i 減1,直到 i 達到0為止。在迴圈體內,你可以使用 result.get(i) 來訪問和處理每個元素。
詳解 提供者:kmlu1111
result.size()-1; i >= 0