package Dec2016;
public class Ques1223 {
public static void main(String[] args) {
Integer obj = Integer.valueOf(args[args.length - 1]);
int i = obj.intValue();
if (args.length > 1) {
System.out.println(i);
}
if (args.length > 0) {
System.out.println(i - 1);
} else {
System.out.println(i - 2);
}
}
}
請問主程式輸出的值是不變的嗎?
args[args.length - 1]) 並轉為整數 i。if:若參數個數 > 1,輸出 i。if-else:若參數個數 > 0,輸出 i - 1;否則 (參數個數為 0) 輸出 i - 2。| 參數個數 | args.length | i 值來源 | 輸出內容 |
|---|---|---|---|
| 0 | 0 | 拋出 ArrayIndexOutOfBoundsException (存取 args[-1]) | 程式崩潰,無輸出 |
| 1 | 1 | args[0] | i - 1 (第二個 if 執行) |
| 2 | 2 | args[1] | i (第一個 if) 然後 i - 1 (第二個 if) |
| >=3 | >=3 | args[last] | 同參數個數=2 |
輸出值不是不變的,它取決於:
i 的值)此外,若無參數執行會直接拋出異常終止。