九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

第二講 Java基礎(chǔ)

  • 資源ID:159278257       資源大?。?span id="24d9guoke414" class="font-tahoma">290.50KB        全文頁數(shù):17頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

第二講 Java基礎(chǔ)

第二章 Java基礎(chǔ)知識2加1為啥變少2數(shù)據(jù)類型轉(zhuǎn)換2位運算3調(diào)試之美4高手點拔-萬年歷的編寫6任務(wù):7需求分析8階段1判斷是否是閏年8階段2編程計算輸入月份的天數(shù)9階段3 編程計算輸入的月份距離1900年1月1日的天數(shù)11階段4 編程計算輸入月份的第一天是星期幾13階段5 格式化輸出× ×年× ×月日歷14完整源程序14第二章 Java基礎(chǔ)知識這一章將演示Java的基本語法,如果您已經(jīng)有其他語言的編程經(jīng)驗,這一章可能很簡單。學習一門新的編程語言首先要掌握這門語言的基礎(chǔ)知識。如數(shù)據(jù)類型、if/else、switch分支語句和while 、for循環(huán)語句和輸出等等。學習程序的目的就是為了解決實際的問題,對實際的問題進行分析,從抽象的描述轉(zhuǎn)換為具體的計算機語言。編程的感覺總是在實踐中一步一步得到提高。加1為啥變少我們知道在Java語言中,數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。基本數(shù)據(jù)為字節(jié)byte、短整型short、整型int和長整型long。布爾型boolean,字符型char。但是下面這個程序會是什么問題呢?示例:public class DataTypeDemo public static void main(String args) / TODO Auto-generated method stubbyte b=127;b+=1;System.out.println(b);/b=b+1;b=(byte)(b+1);程序輸出:代碼詳解:上面的例子中,我們還定義了一個字節(jié)類型的數(shù)據(jù)。當加一時,為什么變?yōu)榱素摂?shù)?這是因為在Java語言中,byte是8位的,最多只能是127,當再加一時,數(shù)據(jù)溢出,就變?yōu)?128啦。數(shù)據(jù)類型轉(zhuǎn)換有時我們需要將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。從小的可以自動轉(zhuǎn)變?yōu)榇蟮臄?shù)據(jù)類型。但是從大的數(shù)據(jù)類型到小的數(shù)據(jù)類型要強制轉(zhuǎn)換。示例:public class DataRevert public static void main(String args) / TODO Auto-generated method stubint i=1;short s=2;i=s+1;/s=i+1;s=(short)(i+1);char c='a'c=(char)(i+97);i=(int)c;int m=9/2;int i2=Integer.parseInt("123");String s3 = Integer.toString(999); System.out.println("c= "+c+" i="+i+" m="+m+" i2="+i2+" s3="+s3);程序輸出:代碼詳解:在上面注釋的一行中,s=s+1為什么出錯啦,這是因為后面的1是當作int類型處理的,而int 類型是128位的。解決方式第一種是寫成b+=1,另一種就是強制類型轉(zhuǎn)換,寫成下一行。另外,字符類型的也可以和數(shù)據(jù)類型轉(zhuǎn)換,字符類型對應(yīng)于相應(yīng)的ASCII碼。位運算在計算機語言中,位運算是將數(shù)據(jù)轉(zhuǎn)換成二進制度形式,一位一位進行比較,得到最后的結(jié)果。位運算有兩種方式 與和或。當兩個都為1時,與才為1,其他結(jié)果都為0。當兩個都為0時,或結(jié)果為0,其他結(jié)果為1。示例:int i=3;int j=4;int k=3|4;int m=3&4;System.out.println("k的值為: "+k+" m的值為:"+m);程序輸出:代碼詳解:在上面的程序中,當進行與運算時,3的二進制為011,4轉(zhuǎn)換為二進制為100當一位一位的與時,最后結(jié)果為0,當進行或運算時,最后的二進制結(jié)果為111,也就是十進制的7。調(diào)試之美每一個程序員要掌握的最基本的一個功能就是程序的調(diào)試。有些邏輯錯誤可能我們無法一眼看出問題出在哪個地方,那么通過對程序進行調(diào)試,我們一步一步地執(zhí)行程序的運行,觀察每個變量的值的變化和執(zhí)行的步驟,可能就能發(fā)現(xiàn)問題所在。下面我們以以下的程序來演示程序的調(diào)試。/* * 演示程序調(diào)試 * author dongyc * */public class DoWhileDemo public static void main(String args) / TODO Auto-generated method stubint i = 1;do System.out.println("我能出現(xiàn)幾次?"); i = i + 1; while ( i < 3 );親愛的同學們,當你運行這個程序時,“我能出現(xiàn)幾次”會不會出現(xiàn)3次呢?如果不是,哪里有問題?通過程序調(diào)試一目了然。程序的調(diào)試主要包括:1. 設(shè)置斷點 通常在懷疑出錯的位置前后進行,雙擊這一行的最左邊就可以啦看到左邊的圓點沒,那個就是斷點的位置,當程序在調(diào)試時,停在那個位置,供程序員觀察變量的值或程序的運行情況。2. 單步執(zhí)行 點擊窗口上的按鈕,開始執(zhí)行程序的調(diào)試。這時會出現(xiàn)一個如圖所示的對話框這段話的意思是是否打開調(diào)試窗口,當然選擇Yes啦。這時會切換到調(diào)試窗口。在這里主要包括三個小窗口,最上邊標記為1的為調(diào)試窗口,2為變量窗口,3為源代碼窗口。在工具欄上面有調(diào)試工具,F(xiàn)5為跳時程序方法中執(zhí)行,F(xiàn)6為跳出。3. 觀察變量和程序的運行 通過反復(fù)點擊F6單步運行程序,觀察程序運行過程,并注意窗口2變量的變化情況。4. 修正代碼,重新運行,當變量為3時,退出了程序的執(zhí)行。5. 改正錯誤 如果想輸出3次的話,是不是應(yīng)將int i=1修改為int i=0呀。程序的主要作用就是找出缺陷原因,修正缺陷,你一定要好好練練呀。高手點拔-萬年歷的編寫上面的程序是熱身之作,下面我們來點復(fù)雜的。下面例子訓(xùn)練的技能點是通過分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的組合來實現(xiàn)萬年歷的顯示。也許你見過類似于圖2-7 windows中的時間日期畫面,那么我們能不能自己寫一個這樣的程序呢。我們通過類似這樣的例子一步一步的講解,相信你的編程能力會得到逐步的提高。圖2-7 windows中的時間和日期窗口任務(wù):要求從控制臺輸入年份和月份,在控制臺上輸出該月日歷(已知1900年1月1日是星期一)。如圖2-8所示,例如當輸入年份2007和月份5后,控制臺上輸出2007年5月的月歷信息。圖2-8 萬年歷的輸出需求分析請你深吸幾口氣,看看有沒有思路。第一個我們首先想到的是這個月有多少天,但是有可能是2月,在這之前是不是還要看這一年是不是閏年?得到這一月有多少天后,是不是得排這個月的1號在哪個位置,也就是星期幾?我們僅有的信息是1900年1月1號是星期一,是不是得看這個月的第一天和1900年1月1號相隔幾天,如果是一天的話,那么是不是這個月的1號是星期二?依此類推。最后這月的1號在輸出時,左邊要留幾個空格是不是也是我們要考慮的問題?格式化換行輸出是大功告的最后一步。那么我們要做的步驟是:1. 實現(xiàn)從控制臺接收年和月,判斷是否是閏年2. 編程計算輸入月份的天3. 編程計算輸入的月份距離1900年1月1日的天數(shù)4. 編程計算輸入月份的第一天是星期幾5. 格式化輸出× ×年× ×月日歷好啦,思路清晰后,下面每個階段將完成不同的任務(wù),最后我們自己的月歷將會出現(xiàn)在控制臺上。加油!階段1判斷是否是閏年這一階段所做的工作為實現(xiàn)從控制臺接收年和月,判斷是否是閏年,從數(shù)學的角度來講,判斷是否是閏年的條件為:能被4整除但不能被100整除;或者能被400整除,程序是怎么實現(xiàn)的呢? 其中關(guān)鍵的語句為:if (year % 4 = 0 && !(year % 100 = 0) | year % 400 = 0)完整的源程序如下:import java.util.Scanner;/* * 判斷是否是閏年 * author dongyc * */public class PrintCalendar1 /* * param args */public static void main(String args) System.out.println("* 萬 年 歷-日期*");Scanner input = new Scanner(System.in);System.out.print("n請選擇年份: ");int year = input.nextInt();System.out.print("n請選擇月份: ");int month = input.nextInt();System.out.println();int days = 0; / 存儲當月的天數(shù)boolean isRn;/* 判斷是否是閏年 */if (year % 4 = 0 && !(year % 100 = 0) | year % 400 = 0) / 判斷是否為閏年isRn = true; / 閏年 else isRn = false;/ 平年if (isRn) System.out.println(year + " 閏年"); else System.out.println(year + " 平年");階段2編程計算輸入月份的天數(shù)在一年中,1月、3月、5月、7月、8月、10月、12月為31天,4月、6月、9月、11月為30天,2月如果是閏月則為29天,平年為28天。類似這樣的用什么實現(xiàn)好呢。switch語句?對!直接上源程序。import java.util.Scanner;/* * 日歷-計算輸入月份的天數(shù) * author dongyc * */public class PrintCalendar2 /* * param args */public static void main(String args) 省略前面的部分代碼int days = 0; / 存儲當月的天數(shù)boolean isRn;/* 判斷是否是閏年 */if (year % 4 = 0 && !(year % 100 = 0) | year % 400 = 0) / 判斷是否為閏年isRn = true; / 閏年 else isRn = false;/ 平年if (isRn) System.out.println(year + "t閏年"); else System.out.println(year + "t平年");/* 計算當月的天數(shù) */switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;System.out.println(month + "t共" + days + "天");階段1所定義的isRn是不是在判斷是否是閏年時起到了作用?階段3 編程計算輸入的月份距離1900年1月1日的天數(shù) 在這個階段,我們要分步來解決問題。第一步,計算輸入的年份之前的天數(shù)。省略前面的部分代碼/* 計算當月的天數(shù) */switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;System.out.println(month + "t共" + days + "天");/* 計算輸入的年份之前的天數(shù) */int totalDays = 0;for (int i = 1900; i < year; i+) /* 判斷閏年或平年,并進行天數(shù)累加 */if (i % 4 = 0 && !(i % 100 = 0) | i % 400 = 0) / 判斷是否為閏年totalDays = totalDays + 366; / 閏年366天 else totalDays = totalDays + 365; / 平年365天System.out.println("輸入年份距離1900年1月1日的天數(shù):" + totalDays);注意年份中有的是閏年則為366天,不是閏年,則為365天。第二步,計算計算輸入月份之前的天數(shù),兩者累加則為輸入的月份距離1900年1月1日的天數(shù)。省略前面的部分代碼/* 計算輸入的年份之前的天數(shù) */int totalDays = 0;for (int i = 1900; i < year; i+) /* 判斷閏年或平年,并進行天數(shù)累加 */if (i % 4 = 0 && !(i % 100 = 0) | i % 400 = 0) / 判斷是否為閏年totalDays = totalDays + 366; / 閏年366天 else totalDays = totalDays + 365; / 平年365天System.out.println("輸入年份距離1900年1月1日的天數(shù):" + totalDays);/* 計算輸入月份之前的天數(shù) */int beforeDays = 0;for (int i = 1; i <= month; i+) switch (i) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;if (i < month) beforeDays = beforeDays + days;totalDays = totalDays + beforeDays; / 距離1900年1月1日的天數(shù)System.out.println("輸入月份距離1900年1月1日的天數(shù):" + totalDays);System.out.println("當前月份的天數(shù):" + days);階段4 編程計算輸入月份的第一天是星期幾要判斷輸入月份的第一天是星期幾,得從1900年1月1日起推算,看相差的天數(shù),如果是差一天,則為星期二,如果相差10天呢,100天呢?用除7求余法是不是更好些?關(guān)鍵代碼為:int temp = 1 + totalDays % 7; / 從1900年1月1日推算部分源程序如下:省略前面的部分代碼/* 計算輸入月份之前的天數(shù) */int beforeDays = 0;for (int i = 1; i <= month; i+) switch (i) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;if (i < month) beforeDays = beforeDays + days;totalDays = totalDays + beforeDays; / 距離1900年1月1日的天數(shù)System.out.println("輸入月份距離1900年1月1日的天數(shù):" + totalDays);System.out.println("當前月份的天數(shù):" + days);/* 計算星期幾 */int firstDayOfWeek; / 存儲當月第一天是星期幾:星期日為0,星期一星期六為16int temp = 1 + totalDays % 7; / 從1900年1月1日推算if (temp = 7) / 求當月第一天firstDayOfWeek = 0; else firstDayOfWeek = temp;System.out.println("該月第一天是: " + firstDayOfWeek);階段5 格式化輸出× ×年× ×月日歷這一階段也要分成兩部分完成。第一部分,星期的標題頭要打印輸出。另外就是要輸出這個月1號之前的空格。關(guān)鍵代碼為:/* 輸出日歷 */System.out.println("星期日t星期一t星期二t星期三t星期四t星期五t星期六");for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo+) System.out.print("t"); / 輸出空格第二部分,循環(huán)打印輸出這個月的每一天,如果是周六,則要換行輸出。關(guān)鍵代碼為:for (int i = 1; i <= days; i+) System.out.print(i + "t");if (totalDays + i - 1) % 7 = 5) / 如果當天為周六,輸出換行System.out.println();完整源程序怎么樣,我們自己能不能寫出一個完整的日歷出來?復(fù)雜的問題,要學會分析里面的要求,逐步細化,對每個小問題進行分析、解決。那么整個的問題也就迎刃而解啦。完整的源程序如下:import java.util.Scanner;/* * 日歷的完整源程序 * author dongyc * */public class PrintCalendar7 /* * param args */public static void main(String args) System.out.println("*萬 年 歷-日期*");Scanner input = new Scanner(System.in);System.out.print("n請選擇年份: ");int year = input.nextInt();System.out.print("n請選擇月份: ");int month = input.nextInt();System.out.println();int days = 0; / 存儲當月的天數(shù)boolean isRn;/* 判斷是否是閏年 */if (year % 4 = 0 && !(year % 100 = 0) | year % 400 = 0) / 判斷是否為閏年isRn = true; / 閏年 else isRn = false;/ 平年/* * if(isRn) System.out.println(year + "t閏年"); else * System.out.println(year + "t平年"); */* 計算該月的天數(shù) */*switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;System.out.println(month + "t共" + days + "天");*/* 計算輸入的年份之前的天數(shù) */int totalDays = 0;for (int i = 1900; i < year; i+) /* 判斷閏年或平年,并進行天數(shù)累加 */if (i % 4 = 0 && !(i % 100 = 0) | i % 400 = 0) / 判斷是否為閏年totalDays = totalDays + 366; / 閏年366天 else totalDays = totalDays + 365; / 平年365天/ System.out.println("輸入年份距離1900年1月1日的天數(shù):" + totalDays);/* 計算輸入月份之前的天數(shù) */int beforeDays = 0;for (int i = 1; i <= month; i+) switch (i) case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31;break; case 2:if (isRn) days = 29; else days = 28;break; default:days = 30;break;if (i < month) beforeDays = beforeDays + days;totalDays = totalDays + beforeDays; / 距離1900年1月1日的天數(shù)/ System.out.println("輸入月份距離1900年1月1日的天數(shù):" + totalDays);/ System.out.println("當前月份的天數(shù):" + days);/* 計算星期幾 */int firstDayOfMonth; / 存儲當月第一天是星期幾:星期日為0,星期一星期六為16int temp = 1 + totalDays % 7; / 從1900年1月1日推算if (temp = 7) / 求當月第一天firstDayOfMonth = 0; / 周日 else firstDayOfMonth = temp;/ System.out.println("該月第一天是: " + firstDayOfMonth);/* 輸出日歷 */System.out.println("星期日t星期一t星期二t星期三t星期四t星期五t星期六");for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo+) System.out.print("t"); / 輸出空格for (int i = 1; i <= days; i+) System.out.print(i + "t");if (totalDays + i - 1) % 7 = 5) / 如果當天為周六,輸出換行System.out.println();

注意事項

本文(第二講 Java基礎(chǔ))為本站會員(kfc****89)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!