第二章學習筆記
阿新 • • 發佈:2018-12-02
一、教材學習內容總結
1、識別符號的使用方法以及語法規則
2、Unicode字符集,及Unicode字符集與ASCII碼之間的關係(U表前128個字元剛好是A碼)
3、常用的基本資料型別(string不在基本資料型別內,本質是個類)
4、基本資料型別的精度高低順序,及高精度轉低精度時造成的精度損失
5、使用Scanner的類方法輸入基本型資料
6、掌握格式控制符以及使用方法
7、陣列的宣告以及使用
8、使用length方法得到陣列的長度
9、陣列的引用使用規則以及本質變化
10、求二十個float值的平均數
package OneWeek; import java.util.Scanner; public class Two { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("請輸入若干個數,每輸一個數回車確認"); System.out.println("最後輸入數字為零結束輸入操作"); Scanner reader=new Scanner(System.in); double sum=0; double x=reader.nextDouble(); int i=1; while(x!=0) { sum=sum+x; x=reader.nextDouble(); i++; } System.out.println("sum="+(sum/i)); } }
11、 判斷輸入值是否在預設陣列中
package OneWeek; import java.util.*; public class One { public static void main(String[] args) { // TODO Auto-generated method stub int start=0,end,middle; double a[]= {2.31,5.11,6.21,8.651,8.1131,7.21,6.11,7.361,4.11,11.21,12.61,1.1121,9.651,3.541,17.51,11.891,16.211,5.6651,8.6981,5.1341}; int N=a.length; //冒泡法從小到大排列陣列a for(int i=0;i<N;i++) { for(int j=i+1;j<N;j++) { if(a[j]<a[i]) { double t=a[j]; a[j]=a[i]; a[i]=t; } } } Scanner scanner=new Scanner(System.in); System.out.println("輸入一個數,程式判斷該數是否在陣列中:"); double number=scanner.nextDouble(); int count=0; end=N; middle=(start+end)/2; //折中查詢法 while(number!=a[middle]) { if(number>a[middle]) start=middle; else if(number<a[middle]) end=middle; middle=(start+end)/2; count++; if(count>N/2) break; } if(count>N/2) System.out.printf(number+"不在陣列a中.\n"); else System.out.printf(number+"在陣列a中.\n"); } }
二、教材學習中的問題和解決過程
1、問題:書本p21中對於flaot、double數字大小的對比:
float x=0.4F;
double y=0.4;
看似相同的小數,在比較的時候x值其實是要大於x值得。
解決:實際儲存中,由於float型變數分配四個位元組記憶體,佔32位,所以最多能夠保留8位有效數字。而double型變數分配八個位元組記憶體,佔64位,可以保留16位有效數字,因此,看似相同的數字在實際比較的時候,是要比較16位的,而x值從第九位數字開始就已經不受float控制,出現隨機值,所以從大小來說,x值是要大於y值得。
三、程式碼除錯中的問題和解決過程
暫無
四、學習思考與感悟
看似簡單的基礎,其實牽扯著許多本質的知識,比如各種基本資料型別的儲存方式、陣列引用的原理等,萬丈高樓平地起,想要技術更進一步,腳下的基礎其實才是關鍵所在,雖然不同於c語言這種機器語言,但java在我眼中還是有著許多c的身影,或者說,我們眼前的那麼多語言,其本質都離不開c吧。
五、學習進度條
程式碼行數(新增/積累) | 部落格量(新增/累計) | 學習時間(新增/累計) | 重要成長 | |
目標 | 7000行 | 30篇 | 400h | |
第一週 | 378/378 | 2/2 | 14/14 | |
第二週 | 127/505 | 1/3 | 5/19 |