20172313 2017-2018-2 《程序設計與數據結構》第六週學習總結
教材學習內容總結
- 學習瞭如何聲明和使用一個數組。
- 學習了要進行邊界檢查,確保只因用數組有效範圍以內的索引值。
- 學習了數組不一樣的聲明方式和初始化方式。
- 學習了當數組保存對象時的使用。
- 初步學習了命令行實參的使用。
- 學習瞭如何在調用方法時怎樣接受任意個數的參數。
- 初步學習了二維數組的使用
教材學習中的問題和解決過程
- 問題1:書上在介紹數組的概念時,說數組的索引值從0開始而不是從1開始可以使元素地址的計算更爲簡單。
- 問題1解決方案:若是索引爲0的話,那麼數據起始地址也就是0了,在計算的時候不用再進行相加運算,從而提升了訪問效率。
- 問題2:剛開始學習命令行實參時,真的有點懵,不明白書上所要表達的意思是什麼。
- 問題2解決方案:在看了書上的例題後,又從資料上又找了個示例,算是初步弄明白了。
-
表明運行是傳入的參數,
main(String[] args){
System.out.print("args[0] = " + args[0]);
}
若是運行的時候,假設程序名是testMain.java
而後輸入 java testMain hello;
輸出的就是args[0] = hello;html
- 問題3:在學習書上的例題8.8的時候,實在是不知道increaseSize的含義究竟是什麼。
- 我一度還上網搜索而且還翻看了以前學習的內容,我覺得是我在哪一個部分的知識存在着遺漏,直到最後我才發現原來方法是寫在代碼最後的/(ㄒoㄒ)/~~,學習的進程才又一次得以進行。這也爲我提供了一個編寫代碼的的格式,在前面先寫上一個方法來解決問題,最後再對方法進行詳細的闡述。
代碼調試中的問題和解決過程
問題1:在作習題8_1的時候,運行代碼時總顯示我有非法字符。可我在代碼裏並無其餘的非代碼字符啊。
java
- 問題1解決方案:我仔細的看了下,原來是我把分號用成中文的了,原來我用vim進行編寫的時候,中英文的標點符號差距比較明顯,因此也就更好區分。換用IDEA後暫時尚未習慣過來,之後仍是要多加當心纔是。
問題2:在編寫習題8_5的時候,在屏幕上輸出是否繼續輸入後並不能輸入,直接跳過了這一不,而且顯示標準方差不存在。
git
- 問題2解決方案:因爲不能輸出,因此我就想個人another=scan.nextLine究竟是哪出了錯誤,我仔細檢查了一遍,先後也不存在中英文半角符號用錯的現象,語法上也沒有出現問題,我就又聯想到了之前王老師上課時所講的問題,我原來也犯過這種錯誤,爲了加深印象,在這裏再一次進行記錄。
-
nextInt只讀取整數,並無讀取輸入進去的\n,也就是說後面的nextLine會讀取\n,但並不返回,會致使後面的一個語句顯示沒有讀取輸入就直接跳過了。編程
問題3:仍是在作習題8_5的時候,不能正確的顯示標準方差的值。
vim
問題3解決方案:這個是因爲粗枝大葉問題連計算時的表達式的代碼都寫錯了( ̄_ ̄),這裏也就不過多贅述了,直接附上正確的代碼圖。
數組
問題3:在編寫習題8_6的時候,提示我沒有返回語句,可我明明是寫了返回語句的。
數據結構
問題3解決方法:我反覆對代碼進行了檢查,發現個人return語句是在if條件語句以內的,也就是說在if語句內進行返回,在這個方法內卻沒有返回值,我把代碼修改了一下,使得在這個方法內進行返回,詳看下面的方法圖。
app
上週考試錯題總結
- 錯題1: The idea that program instructions execute in order (linearly) unless otherwise specified through a conditional statement is known as
A . boolean execution
B . conditional statements
C . try and catch
D . sequentiality
E . flow of control
- 解析 「控制流程」描述了指令執行的順序。 它默認爲線性(或順序),但經過使用控制語句(如條件和循環)進行更改。
- 緣由:這道題徹底就是粗心了,若是認真一點耐着性子好好地把英語讀一遍是能夠作對的。
- 錯題2: If a break occurs within the innermost loop of a nested loop that is three levels deep
A . when the break is encountered just the innermost loop is "broken"
B . when the break is encountered, all loops are "broken" and execution continues from after the while statement (in our example)
C . when the break is encountered, all but the outermost loops are broken, and execution continues from the next iteration of the while loop (in our example)
D . this is a syntax error unless there are break or continue statements at each loop level
E . none of the above
- 解析 最內層的循環(在咱們的例子中爲for循環)被破壞,執行從for循環結束後繼續執行。
- 緣由:這道題應該是屬於個人英語問題了...沒有很好的理解這道題的意思,仍是應該好好的提高下本身的英語水平...
- 錯題3: In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).
A . true
B . false
- 解析 您也可使用<,>,==,!=,<=,> =直接比較char變量,但對於任何字符串比較,必須使用compareTo(),equals()和equalsIgnoreCase()。
- 緣由:這道題確實不是特別清楚,要好好的識記一下。
- 錯題4: You might choose to use a switch statement instead of nested if-else statements if
A . the variable being tested might equal one of several hundred int values
B . the variable being tested might equal one of only a few int values
C . there are two or more int variables being tested, each of which could be one of several hundred values
D . there are two or more int variables being tested, each of which could be one of only a few values
E . none of the above, you would never choose to use a switch statement in place of nested if-else statements under any circumstance
- 解析 switch語句只能在被測試的單個變量使用時使用,而且它是一個整型(int或Java中的char)。 此外,由於您必須枚舉每一個可能的測試值,因此switch語句只有在被測試值的數量很小時纔有意義。
- 緣由:這道題也是因爲本身的疏忽,沒有認真的讀題致使了錯誤。
- 錯題5: If a switch statement is written that contains no break statements whatsoever,
A . this is a syntax error and an appropriate error message will be generated
B . each of the case clauses will be executed every time the switch statement is encountered
C . this is equivalent to having the switch statement always take the default clause, if one is present
D . this is not an error, but nothing within the switch statement ever will be executed
E . none of the above
- 解析 雖然寫這樣一個轉換語句是不尋常的,但它是徹底合法的。 開關語句執行的正常規則適用於在計算開關表達式後執行的匹配的case子句。 以後,依次執行全部後續子句,由於沒有終止開關/大小寫執行的中斷語句。
- 緣由:概念的理解不清。
- 錯題6: A continue statement
A . may be used within a while or a do-while loop, but not a for loop
B . is identical to a break statement within Java loops
C . may be used within any Java loop statement
D . may be used within a for loop, but not within a while or a do-while loop
E . none of the above
- 解析 儘管應該避免使用continue語句,可是若是可能的話,它們能夠在Java的三個循環中使用:for,while和do-while。
- 緣由:書本上的概念理解不清。
- 錯題7: Given that s is a String, what does the following loop do?
for (int j = s.length( ); j > 0; j--)
System.out.print(s.charAt(j-1));
A . it prints s out backwards
B . it prints s out forwards
C . it prints s out backwards after skipping the last character
D . it prints s out backwards but does not print the 0th character
E . it yields a run-time error because there is no character at s.charAt(j-1) for j = 0
- 解析 變量j從字符串的長度向下計數到1,每次在位置j-1打印出字符。 長度爲1的字符是打印的第一個字符,這是字符串的最後一個字符。 它會一直持續到j = 1,並在位置j - 1或第0個字符處打印字符,以便向後打印整個字符串。
- 緣由:對題意的理解有問題。
- 錯題8: In Java, it is possible to create an infinite loop out of while and do loops, but not for-loops.
A . true
B . false
解析 確實,循環能夠是無限循環,但Java for循環也能夠是無限循環。 在許多其餘編程語言中,這種狀況並不是如此,其中for循環具備設置的起點和終點,但Java for-loops比大多數其餘語言的for-loops靈活得多。
結對及互評
點評模板:
- 博客中值得學習的或問題:
- 代碼中值得學習的或問題:
點評過的同窗博客和代碼
其餘(感悟、思考等,可選)
這周的學習任務仍是比較的重的,也增長了許多新的具備必定難度的內容,此外,在編寫代碼的過程當中,我一樣也發現了本身的一些問題,粗枝大葉的毛病仍是沒有改掉,也所以耽誤了很多學習的進度。仍是但願在之後的學習生活中得以改進和避免。less
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
126 |
1/1 |
20/20 |
|
第二週 |
388/466 |
1/2 |
15/35 |
|
第三週 |
706/1162 |
1/3 |
17/52 |
|
第四周 |
1104/2266 |
1/4 |
20/72 |
|
第五週 |
1126/3392 |
1/5 |
15/87 |
|
第六週 |
906/4298 |
1/6 |
20/107 |
|
計劃學習時間:20小時編程語言
實際學習時間:20小時
改進狀況:之後仍是要更加努力地敲代碼才行!!!
參考資料