數組
1.保存元素個數預約義,數組是必須實例化的對象,聲明後大小不可變。
2.數組保存的能夠是基本數據類型,對象(包括本身編寫的),數組也能夠做爲參數
3.數組的參數能夠用方法變成可變長度參數,也能夠經過命令行輸入。
4.二維數組:int[][]html
問題1解決方案:也就是對於這個題目,上述的第二種思路是解決不了的(個人嘗試是這樣的)java
問題2:爲何數組的索引值從0開始?git
問題2解決方案:百度。書上的解釋是,從計算方法上看,「訪問第一百個元素與第一個元素同樣簡單」。不過在我看來是「訪問第一個元素與第一百個同樣困難」。因而百度的一篇cenalulu的MySQL博客有較詳細的介紹:
最重要的是「歷史緣由」,再有就是0的標號寫法能夠節省編譯時間,能夠更優雅的表示數組字串(不用+1什麼的,差1錯誤)編程
問題3:書上的一道例題是要找出用戶輸入的字符串中的大小寫字母,並計算出出現次數數組
問題3解決方案:經過分析和參考了其餘同窗的博客,理解這個例題的作法:
首先這個程序是經過將字符和Unicode字符集對應相對字符的位置,還有循環,從而把大小寫的26字母打印出來的。而後用charAt把相應的字符拿出來,把它做爲數組的索引,出現一次,就加1,從而達到計數的目的。編程語言
問題1:課後習題PP8.5。一開始的思路是如圖:
首先是將輸入的數字付給num1,再把num1存在數組裏,固然也能夠直接存在數組裏,我這樣作是爲了測試會不會阻斷循環時的輸入(結果確實是的)。輸入完數字以後會接着要輸入y/n,這就是爲了做爲是否結束輸入的依據,便是否結束循環。按道理來講,若是我輸入的是「n」,也就是「judge==n」成立,應該接着循環,提示輸入數字纔對啊,然而事實是直接結束循環。oop
問題1解決方案:我也嘗試了不一樣的語句,好比在循環裏面用判斷語句,或是再嵌套一個循環,結果都是隻能循環一次。如圖:
這裏還有一個問題就是:一開始我聲明的對象只有scan一個,而後用他進行了兩次輸入,這是不行的(會直接結束,沒法輸入),要兩個對象,各自調用方法。
【更新】通過我不懈的努力,最終讓程序的結果符合了預期:如圖
所作的修改只有畫橫線一處,把原先的相等性運算符「==」改爲了方法equals,程序是正常運行了。但還有一個疑問就是,其實這兩個是等價的吧,爲何前面的那個不行呢?
這裏還有一個要記錄的,數組的方法.length是數組的長度,而不是已經有了多少輸入保存進去的數據(害我平均數老是算不對)
還有一個不完美的地方就是:依照題目的意思輸入的輸入的數不能超過50,這就致使了最後輸出數組中值的時候,會把沒輸的值所有是0輸出出來。學習
問題2解決方案:這個問題想了好久沒有想出來。最後參考了蔣子行同窗的代碼,不由感嘆蔣子行同窗真的是很厲害啊。原本是想參考一下有個思路,最後發現差很少是抄下來了,由於他寫的代碼真的簡潔,很厲害。代碼如圖:
一開始個人作法是,一個一個的向索引處存值,而後就沒有而後了,由於真的不知道怎麼去統計。
參考了蔣子行同窗的代碼(跟書上的例題同樣,不過當時的例題沒看懂,這下理解了):
把輸入的值做爲數組的索引,每輸入一次就加一,這樣就解決了統計次數的問題。
另一點就是用的continue語句,把數組內其它沒輸滿的數字(初始化爲0),去掉。這樣就達到了只打印出已輸入的數值出現狀況。測試
錯題1:
命令行
錯題1解析:最內層的循環(在示例中是for循環)被破壞,而且在for循環結束後繼續執行。
錯題2:
錯題2解析:這適用於int、short、byte、long、char和boolean,而不是double或float變量。若是兩個雙變量x和y正在被測試,(x == y)只有當它們剛好等於最後一個小數點時纔是正確的。相反,比較這兩個值是很常見的,可是容許在值上有細微的差異。
錯題3:
錯題3解析:儘管應該避免使用continue語句,但若是可能的話,能夠在Java的三個循環中使用它們:for、while和do-while。
錯題4:
錯題4解析:Java測試的條件操做符在本例中爲條件(x < 0),若是爲真,則返回值後的值?(本例中爲x),若是爲false,則返回:(在本例中爲0)。原始的if語句是將y賦給x (x < 0)和0。這將經過將y賦值爲x或0 (x < 0)來完成,如a在B中所示,x被賦值爲y或0,這是向後的。在C中,條件操做符是語法無效的。在D中,根據(x < 0), y將被設置爲true或false,而E中的語句在語法上是無效的。
錯題5:
錯題5解析:變量x從10開始。每一個循環經過循環,x遞減,循環最後退出,一旦x再也不大於0,在這個例子中,當x變成0。因此循環體執行x = 10, x = 9, x = 8,下面是x = 0。這是11倍。
錯題6:
錯題6解析:變量j從字符串長度到1,每次打印出位置j-1的字符。長度爲1的字符是第一個字符,這是字符串的最後一個字符。它一直持續到j = 1,並輸出位置j - 1或第0字符的字符,以便向後打印整個字符串。
錯題7:
錯題7解析:這個循環初始化j到0,並將其與1000進行比較,可是在每次循環迭代以後都不會改變。在實際中,循環將會隨着運行時錯誤而終止,最終當我變得太大時,一個值存儲在內存中,但邏輯上,這是一個無限循環。
錯題8:
錯題8解析:誠然,while循環能夠是無限循環,但Java for-loop也能夠是無限循環。在許多其餘編程語言中,for循環都有一個開始和結束點,可是Java for循環比大多數其餘語言的for循環要靈活得多。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 309/309 | 1/1 | 20/20 | |
第二週 | 269/578 | 1/2 | 18/38 | |
第三週 | 236/776 | 1/3 | 22/60 | |
第四周 | 507/1283 | 2/5 | 30/90 | |
第五週 | 631/1914 | 1/6 | 30/120 | |
第六週 | 529/2443 | 1/7 | 25/145 |