20172311 2017-2018-2 《程序設計與數據結構》第六周學習總結
教材學習內容總結
這周主要對數組這個全新的概念進行了學習。
1.首先學習了聲明和使用一些基本類型的數組,比如整數型和字符型,要注意數組是必須實例化的對象。
2.邊界檢查整體上就是說訪問的數組中的元素必須是存在的,否則就會拋出異常。
3.數組初始值表可以實例化一些基本類型數組的對象。
4.對命令行實參的了解。
5.定義方法實現可變長度參數表。
6.對二維數組的學習和對多維數組的了解。
教材學習中的問題和解決過程
public class Student {
public static void main(String ... args) {
System.out.print(args[0]+"' average score is : ");
double average;
int sum=0;
int num=0;
for(int a=1 ;a<args.length;a++) {
sum += Integer.parseInt(args[a]);
num++;
}
average=(double)sum/num;
System.out.println(average);
}
}
可以將args理解成一個String型的數組,例子中定義了一個可變長度的String型的args數組,第一條輸出語句輸出的是數組中索引為0的對象加上后面紅色部分組成的字符串,第二條輸出語句輸出的是args數組中其他對象轉換為int型之后的平均值。命令行實參的執行需要在編譯的時候初始化args數組,而且參數的個數一定要等於數組的長度,除非args數組是可變長度的數組。
- 問題2:JAVA中可變長度參數表的使用方法除了課本中的定義方法實現還有其他方法實現嗎?
- 問題2解決方案:通過查詢眾多資料了解到答案是否定的。也就是說可變長度參數表的使用必須要自己定義方法類才能實現。
參考資料1、參考資料2、參考資料3
代碼調試中的問題和解決過程
-
問題1:課本上的NameTag.java編譯總是失敗
截圖如下:
-
問題1解決方案:經過多次嘗試發現是因為我代碼是在IDEA里寫的,然后gitpull到虛擬機上,所以開頭有一個打包操作,把打包的命令刪除之后就可以運行了,實在是有點奇妙。
-
問題2:pp8.5項目編寫時無法實現輸入多個值。
-
問題2解決方案:使用for循環結合while循環最終實現
截圖如下:
代碼托管
上周考試錯題總結
-
錯題1
理解:如果在嵌套循環的最內層循環中發生了break,而這個循環就有三個層次,那么只是最內層的循環被破壞。
-
錯題2
錯因:基礎知識掌握不牢導致審題不嚴謹進而導致腦子短路。
-
錯題3
理解:switch語句比較適用於幾個可能的情況。 -
錯題4
理解:我感覺自己做的是對的,答案是錯的。
-
錯題5
錯因:手殘!!!!! -
錯題6
錯因:我覺得這個循環寫得毫無邏輯,我甚至懷疑它到底是不是個for循環。 -
錯題7
理解:這句話是對的,也是不對的。因為我們不知道他for循環外面那個j是不是在for循環外面定義過。
結對及互評
我和黃宇瑭同學這周只是做到了互評博客,並沒有做到結對學習,希望在以后的學習中能夠多多交流,多多討論,共同進步!
點評過的同學博客和代碼
-
本周結對學習情況
- 20172307
- 結對照片
暫時沒有搞懂這個照片的含義,莫非是我們兩個的合影??? - 結對學習內容
這周並沒有結對學習,因為錯以為結對就是為了互評博客,以后一定加強組內學習,互幫互助!!
-
上周博客互評情況
感悟
最大的感悟就是想學好JAVA實屬不易,比如那個pp8.6項目我編了有一整天還是沒有完全實現,感覺任務對我來說算是勉強可以完成。花在編項目上的時間多了,留給寫博客的時間就會少,兩者之間的平衡總是難以把握好,希望在以后的學習中能夠逐漸摸索,繼續努力堅持吧!
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 28/28 | 1/1 | 16/16 | |
第二周 | 710/738 | 1/2 | 20/36 | |
第三周 | 426/1164 | 1/3 | 16/52 | |
第四周 | 1068/2232 | 2/5 | 20/72 | |
第五周 | 604/2928 | 1/6 | 22/94 | |
第六周 | 609/3537 | 1/7 | 22/116 |
-
計划學習時間:20小時
-
實際學習時間:22小時
-
改進情況:盡量嘗試着對編程的時間和寫博客的時間進行合理的分配。