# 8/19 K速記 手寫題目 ```java= int a = 4,b = 3; a = (a++ - b)*a; ``` <K想法> ()優先,故 (a++ -b)內先處理,a為4,暫存的a為5,此時()為(4-3), 後方的*a 此時應該由暫存的a(=5)帶入, 故答案應為 (4-3)x5 = 5; ```java= int a = 4,b=3; a = (a * ++b)/ --a; ``` <K想法> 先處理()內,++b先處理,b=> 3+1=4,故()內應為(4x4), 計算/之前 先處理--a =3, 答案應為 (4x4)/3=16/3=5(取整數) ```java= int a = 4, b=3; a = ((--a)* b++) / (a * --b); ``` <K想法> 先依序處理(),最內層為(--a),最先處理 a=3, 再處理 ()/() 兩個()由左到右依序, (3 x b++) 此時b為3 暫存b為4, 第二個()為(a x --b) 先處理 --b 但此時b使用暫存值4做計算先-1,故為(3x3) 故 答案應為 (3x3)/(3x3)=1 程式變數的宣告 盡可能不要使用全域變數,習慣要改!! 需要使用時,再進行宣告即可。 (Q) 如何判定程式效能!? 空間複雜度 跟 程式執行複雜度 * 長度不同的矩陣長度列印 ```java= int[][] arr = { {1,2,3},{4,5}}; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ //執行動作 } } ``` * 函式 ```java= public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); test();//執行下方函式(方法) } public static void/*方法的回傳值*/ test() /*方法名稱(型態 參數1名稱,型態 參數2名稱)*/ { System.out.println("!") } ``` 若方法設定有回傳值,則函式內必須有return, 呼叫方法時有回傳值,不一定需要接收。 main函式內變數,與函式內可重複名稱,因函式內的名稱生命週期,僅在該函式內。 java 僅 call by value 另有 call by reference 及 call by address(限台灣) ```java= public class Main{ public static void main(String[] args){ //Scanner sc = new Scanner(System.in); int a = 5; test(a);//執行下方函式(方法) System.out.println(a); //外部 a 未被變更 印出5 int[] b = new int[1]; b[0]=5; System.out.println(b[0]); //位址指向的 b[0]資料被變更 印出1 } public static void test(int a,int[] b){ a += 1; b[0]=1; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up