20172313 2017-2018-2 《程序設計與數據結構》第六週學習總結

20172313 2017-2018-2 《程序設計與數據結構》第六週學習總結

教材學習內容總結

  1. 學習瞭如何聲明和使用一個數組。
  2. 學習了要進行邊界檢查,確保只因用數組有效範圍以內的索引值。
  3. 學習了數組不一樣的聲明方式和初始化方式。
  4. 學習了當數組保存對象時的使用。
  5. 初步學習了命令行實參的使用。
  6. 學習瞭如何在調用方法時怎樣接受任意個數的參數。
  7. 初步學習了二維數組的使用

教材學習中的問題和解決過程

  • 問題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靈活得多。

結對及互評

點評模板:

  • 博客中值得學習的或問題:
    • 排版精美,對於問題研究得很細緻,解答也很周全。
  • 代碼中值得學習的或問題:
    • 代碼寫的很規範,思路很清晰,繼續加油!

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172332
    • 結對學習內容
      • 第8章 數組

其餘(感悟、思考等,可選)

這周的學習任務仍是比較的重的,也增長了許多新的具備必定難度的內容,此外,在編寫代碼的過程當中,我一樣也發現了本身的一些問題,粗枝大葉的毛病仍是沒有改掉,也所以耽誤了很多學習的進度。仍是但願在之後的學習生活中得以改進和避免。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小時

  • 改進狀況:之後仍是要更加努力地敲代碼才行!!!

參考資料

相關文章
相關標籤/搜索