20172329 2017-2018-2 《程序設計與數據結構》第六週學習總結
教材學習內容總結
第八章:數組
1、數組元素
一、訪問數組的方式:「數組名[索引值];不能混淆索引值和存於該索引值位置的數據值。php
2、聲明和使用數組
一、定義結構:int[ ] 數組名 = new int[索引值] 或者 int 數組名[ ];
二、在全部的Java運算符中,索引運算符「[ ]」有最高的優先級;
三、檢查數組邊界的方法之一:利用length;例:numbers.length;
四、數組初始值表:各數據用逗號隔開,並以花括號({ })做爲終結符;例:int[ ] scores = {1,2,3};
注:數組的長度是它可保存的個數,所以數組的最大索引值是(length-1);html
3、對象數組
一、一個數組能夠有多個對象,每一個對象又由一組變量和使用這些變量的方法組成,而對象中的變量可能自己又是數組;git
教材學習中的問題和解決過程
- 問題1:在學習例子8.3的時候,發現例題用到了char方法,其中有這樣一段:
for (int ch = 0;ch<line.length();ch++)
{
current = line.charAt(ch);
if (current>='A' && current<='Z')
upper[current-'A']++;
else
if (current>='a' && current<='z')
lower[current-'a']++;
else
other++;
}
我忽然發現字符之間怎麼能相減呢,並且是單引號,這是個啥呀,一整子恍惚......web
NumberFormat fmt = NumberFormat.getCurrencyInstance();
public static void main(String[] args)
書中講其實args就是一個數組,這就讓我想,可不能夠把它換成其餘的呢?less
- 問題3解決方法:
我實驗過發現實際上是能夠的,可是爲何恰恰要寫成args呢?可能那個造這個東西的叫args。。。
因而就繼續進行解決:
發現網上有和我同樣有疑問的..果真是約定俗成的。編程語言
代碼調試中的問題和解決過程
若是兩個實參字符串都沒有在命令行上提供,那麼args數組將沒有足夠的元素,程序中對args數組的引用將致使拋出ArrayIndexOutOfBoundsException異常。
可是如今就有一個問題,我該在哪裏輸入這個實參字符串呢?
我嘗試了把args定義拿出來:
結果呢?
仍是不對..哪裏出問題了呢?
忽然意識到好像應該有兩個值,因而就再給他加一個:
結果呢?
終於成功了...
可是如今還有一個問題,書本上講的是在命令行裏輸入,可是我這個就是在程序裏輸入,仍是有問題:
有什麼問題呢?其實就是ieal不具有輸入命令行的功能,因此輸入不了,就用虛擬機:
其實也就解決了。
上週考試錯題總結
- 錯題1
Assume that count is 0, total is 20 and max is 1. The following statement will do which of the following? If (count! = 0 && total / count > max) max = total / count;
A. The condition short circuits and the assignment statement is not executed
B. The condition short circuits and the assignment statement is executed without problem
C. The condition does not short circuit causing a division by zero error
D. The condition short circuits so that there is no division by zero error when evaluating the condition, but the assignment statement causes a division by zero error
E. The condition will not compile because it uses improper syntax
解析:因爲count爲0,(count!= 0)爲false。因爲&&條件的左側爲假,所以條件短路,所以不判斷右側。所以,避免了零偏差的潛在除法。因爲條件爲false,所以不會執行max = total / count語句,從而避免可能的零點錯誤除法。
緣由:我選擇D的緣由認爲判斷語句仍是能夠輸出的,可是結果不是這個樣子,直接中斷。
正確答案: A 個人答案: D
- 錯題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循環結束後繼續執行。
緣由:對於書中的break語句理解不夠清晰,認爲break就會直接跳出。
正確答案: A 個人答案: C
- 錯題3
Which of the following are true statements about check boxes?
A. they may be checked or unchecked
B. radio buttons are a special kind of check boxes
C. they are Java components
D. you can control whether or not they will be visible
E. all of the above
解析:有關複選框的四個陳述中的每個都是真實的。
緣由:拿捏不許其餘幾個的準確性。
正確答案: E 個人答案: C
- 錯題4
In order to compare into, float and double variables, you can use <, >, ==, =, <=, >=, but to compare char and String variables, you must use compare to ( ), equals ( ) and equalsIgnoreCase ( ).
A. true
B. false
解析:您還可使用<,>,==,!=,<=,> =直接比較char變量,可是對於任何字符串比較,必須使用compareTo(),equals()和equalsIgnoreCase()。
緣由:在本週實驗周我用實例發現這個問題,以前不是很明細。
正確答案: B 個人答案: A
- 錯題5
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語句只有在被測試值的數量很小時纔有意義。
緣由:由於當時看書認爲以爲switch能夠輸入不少個對象,可是我忘記還須要枚舉。
正確答案: B 個人答案: C
- 錯題6
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子句。以後,依次執行全部後續子句,由於沒有終止開關/大小寫執行的中斷語句。
緣由:這道題特別後悔作錯了,由於其實交卷子回頭看書的時候發現其實有關這道題的概念。
正確答案: E 個人答案: B
- 錯題7
How many times will the following loop iterate?
Into x = 10;
do {
System.out.println(x);
x--;
} while (x > 0);
A. 0 times
B. 1 times
C. 9 times
D. 10 times
E. 11 times
解析:變量x從10開始。每次經過循環,x遞減,而且一旦x不大於0,循環最終退出,在這種狀況下,這意味着一旦x變爲0。所以,循環體執行x = 10, x = 9,x = 8等等,直到x = 0。這是11次。
緣由:計算問題.......
正確答案: E 個人答案: D
- 錯題8
Given that s is a String, what does the following loop do?
For (into j = 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個字符處打印出字符,以便向後打印整個字符串。
緣由:個人理解和答案如出一轍,可是,問題是這個答案的意思不該該是向前打印出來麼,後到前啊,讓我很是的迷...
正確答案: A 個人答案: B
- 錯題9
Which of the following statements are true about Java loops?
A. all three loop statements are functionally equivalent
B. while loops and do loops are essentially the same; but while loops always execute at least once
C. if you know the number of times that a loop is to be performed, the best loop statement to use is a while loop
D. loops may be replaced by an appropriate combination of if-else and switch statements
E. none of the above
解析:在Java中,與大多數語言同樣,循環語句基本上都是相同的(而且幾乎能夠互換)。它們的主要區別與控制條件的評估時間以及是否存在增量/更新的語法有關。
緣由:發現for是知道次數應該首選的....
正確答案: A 個人答案: C
- 錯題10
The following loop is syntactically valid.
for (into j = 0; j < 1000; j++) j--;
A. true
B. false
解析:Java編譯器不關心你在循環中遞增j,而是在循環體中遞減j。從邏輯上講,這個循環沒有任何意義,由於j會不斷遞增和遞減,因此它永遠不會達到1000,但循環語法上沒有任何問題。
緣由:當時認爲是一個死循環
正確答案: A 個人答案: B
- 錯題11
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靈活得多。
正確答案: B 個人答案: A
緣由:沒有理解清楚Java for-loops和for-loops的區別。
點評過的同窗博客和代碼
- 本週結對學習狀況
- 博客中值得學習的或問題:
- 善於思考,勤於看書,能夠在書中摳細節,把細節問題放大,解決起來更加方便。
- 代碼中值得學習的或問題:
- 註釋敲的很棒,可讓別人清楚明白這裏究竟是在作什麼。
- 基於評分標準,我給本博客打分:9分。得分狀況以下:
- 正確使用Markdown語法(加1分):
- 模板中的要素齊全(加1分)
- 教材學習中的問題和解決過程, 一個問題加1分
- 代碼調試中的問題和解決過程, 一個問題加1分
- 本週有效代碼超過300行(加2分)
- 其餘加分:
- 正確使用Markdown語法(加1分):
- 模板中的要素齊全(加1分)
- 教材學習中的問題和解決過程, 一個問題加1分
- 代碼調試中的問題和解決過程, 一個問題加1分
其餘
- 這一週感受上是很忙,其實至關於半周學一章知識,可是怎麼講,雖然累,並且還一堆事情,
沒有時間陪對象,也沒有時間和父母打好長好長時間的電話,脾氣也有點燥,早晚也要經歷的,如今累點,說不定之後可能會好一點呢。其實每週都在看那個千帆圖,不少人吐槽看不清本身的,只是以爲,本身那根線比做函數,何時能求導不存在的時候,可能才讓本身罷休。
- 時間真的過的好快,飛快,光速同樣,不少同窗都給我說,如今就像是讀高三,比高三還苦,
那大家應該來咱們中學,超級爽,總之,仍是那句話,本身選的路跪着也要走完它。
學習進度條
|
代碼行數(新增/累積) |
博客量(新增/累積) |
學習時間(新增/累積) |
目標 |
5000行 |
30篇 |
400小時 |
第一週 |
156/156 |
1/1 |
15/15 |
第二週 |
217/371 |
1/2 |
20/35 |
第三週 |
233/604 |
2/4 |
20/55 |
第四周 |
1382/1986 |
1/5 |
35/90 |
第五週 |
146/2196 |
1/6 |
25/115 |
第六週 |
462/2658 |
1/7 |
15/130 |
參考資料
Java程序設計
藍墨雲
數字格式化