JAVA入門基礎(chǔ)_第1頁
JAVA入門基礎(chǔ)_第2頁
JAVA入門基礎(chǔ)_第3頁
JAVA入門基礎(chǔ)_第4頁
JAVA入門基礎(chǔ)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Java入門基礎(chǔ)1 java課程結(jié)構(gòu)java整體分三個(gè)階段。每個(gè)階段對于大家的學(xué)習(xí)要求和方法1java入門基礎(chǔ):基礎(chǔ)的語法,循環(huán),條件,表達(dá)式。語法,條件,循環(huán)思路2java面向?qū)ο螅好嫦驅(qū)ο蟮幕菊Z法,和面向?qū)ο蟮膶?shí)現(xiàn),面向?qū)ο蟮脑O(shè)計(jì)思路3java JDK使用:java提供大量可以使用類,對于這些類的使用。2 Java語言的歷史javaSe 基礎(chǔ)j2se(曾用名)javaMe 微型開發(fā)j2me(曾用名)javaEe 企業(yè)級開發(fā)(培訓(xùn)方向)j2ee(曾用名)1 byte = 8 bit2.1 java現(xiàn)在的版本?學(xué)習(xí)是哪個(gè)版本?現(xiàn)在發(fā)布java8。學(xué)習(xí)java8。開發(fā)時(shí)java6,java7。

2、jdk1.8 和jdk8 是一個(gè)東西。java1.8 與 java8是一個(gè)版本。java1.5 版本時(shí)進(jìn)行了比較大的改變。java5.0java1.2版本時(shí)才分成了se,me,ee三個(gè)模塊。j2se,j2me,j2ee。3 java語言的運(yùn)行機(jī)制C語言 是 高級語言。機(jī)器語言:計(jì)算機(jī)只認(rèn)識0.1。就計(jì)算機(jī)可識別的語言。高級語言:C java也是,給程序員看。if for while break;將高級語言編寫的內(nèi)容,轉(zhuǎn)換成計(jì)算機(jī)可以識別的機(jī)器語言。有幾種方法?1 編譯型C源文件(使用高級語言編寫的文件)->編譯(編譯器)->可執(zhí)行文件(機(jī)器語言)->執(zhí)行可執(zhí)行文件特點(diǎn):1 一

3、次編譯2 依賴平臺2 解釋型HTML源文件->解釋執(zhí)行(解釋器)->機(jī)器語言特點(diǎn):1 每次執(zhí)行時(shí)都要解釋。2 不依賴平臺java是先編譯后解釋型的語言。java源文件(.java)->編譯(javac命令,編譯器)->java類文件(.class,字節(jié)碼文件)->解釋執(zhí)行(JVM,解釋器,java命令)->機(jī)器代碼(發(fā)送給操作系統(tǒng)執(zhí)行)java類文件,后綴是.class , 也稱為字節(jié)碼文件。因?yàn)樵陬愇募卸际亲止?jié)碼。字節(jié)碼是比較像二進(jìn)制的機(jī)器編碼。可以由java的解釋器執(zhí)行。JVM : java虛擬機(jī)。就是.class文件運(yùn)行時(shí)的一個(gè)環(huán)境。二個(gè)命令:1 j

4、avac 編譯2 java執(zhí)行4 JDK與JREJDK開發(fā)工具包。 jdk = jre+工具+類庫JRE 開發(fā)時(shí)環(huán)境。jre = jvm + 解釋器5 配置環(huán)境變量path安裝完成JDK之后都會選擇配置環(huán)境變量pathpath是在dos環(huán)境下指定輔助路徑。配置方案:1 JAVA_HOME : C:Program FilesJavajdk1.8.0_252 Path : %JAVA_HOME%bin;.測試:在dos環(huán)境java -version6 編寫第一個(gè)java源文件注意大小的編寫,注意空格。注意字符。注意標(biāo)點(diǎn)符號。java源文件:使用java語言編寫的文件。后綴是.java。只使用文本編

5、輯軟件開發(fā)。6.1 在目錄中創(chuàng)建一個(gè)叫Test.java的源文件6.2 編寫Test.java文件的內(nèi)容public class Test public static void main(String args) System.out.println("我叫PeterSUN!"); public class Test : public 是一個(gè)關(guān)鍵字,表示公有。在任意位置可以訪問。class 是一個(gè)關(guān)鍵字,表示類的標(biāo)識。Test 是一個(gè)類名。這個(gè)名稱是我們自己起的。首字母大寫,與文件名稱一致。public static void main(String args) publi

6、c static void 不解釋,固定格式,main 是java程序的入口方法。(String args) 固定格式,表示 是一個(gè)字符串類型的數(shù)組。System.out.println("我叫PeterSUN!"); System.out.println() java中標(biāo)準(zhǔn)輸出方法。"我叫PeterSUN!" 是一個(gè)字符串,輸出的內(nèi)容。在java中一行語句的結(jié)束用""號表示。6.3 編譯這個(gè)Test.java的源文件編譯的命令:javac Test.java的文件位置在:E:no1.20170711testE:no1.2017071

7、1test>javac Test.java編譯完成之后會出現(xiàn).class文件。6.4 解釋執(zhí)行.class文件命令: java格式: java 類名7 使用MyEclipse工具創(chuàng)建java工程1 先創(chuàng)建工程(java project)2 在工程的src目錄(源文件目錄)創(chuàng)建類(Class)3 保存時(shí)工具自動編譯4 運(yùn)行時(shí)run as -> java application8 在工具中配置JDKwidnow -> 最后一項(xiàng)9 注釋注釋是寫在源文件中的提示信息。在編譯時(shí)不起作用。在java中有三種:1 單行注釋/單行注釋的內(nèi)容2 多行注釋/*多行注釋的內(nèi)容*/3 文檔注釋/*參

8、數(shù)標(biāo)記*/單行注釋和多行注釋 都是給當(dāng)前這個(gè)類的開發(fā)人員看的。文檔注釋是這個(gè)類的使用者看的。9.1 文檔注釋的使用文檔注釋只能放到兩個(gè)位置1 類的上面/* * 這是一個(gè)叫Test的類。 * author peterSun * version jdk8 */public class Test .author 作者version 版本號2 方法的上面/* * 這一個(gè)計(jì)算兩個(gè)數(shù)和的方法 * param i 第一個(gè)操作數(shù) * param j 第二個(gè)操作數(shù) * return 兩個(gè)數(shù)的和,i+j */public int add(int i ,int j)return i+j;param 參數(shù)的說明ret

9、urn 返回值的說明9.2 javadoc命令使用javadoc命令從源文件中抽取文檔注釋生成API幫助文檔1 在dos環(huán)境下使用javadoc命令。javadoc -d api Test.java-d api 表示在當(dāng)前目錄位置創(chuàng)建一個(gè)叫api的目錄,保存輸出的內(nèi)容Test.java 是源文件。所有文檔注釋只在源文件中有效2 在dos環(huán)境下使用javadoc命令,帶-version和-author。javadoc -d api -version -author Test.java9.2.3 使用工具導(dǎo)出API文檔注釋10 配置工具中的中文編碼(utf-8)11 包(package)packa

10、ge包,作用組織java源文件。與windows操作系統(tǒng)的文件夾是一個(gè)相同的概念。11.1 使用包的關(guān)鍵字:package 和import11.2 使用package關(guān)鍵字為java源文件打包格式 : 在源文件的最上面package 包名;package 包名.包名;11.3 使用import 導(dǎo)包導(dǎo)包,實(shí)際上是導(dǎo)入包中的類。格式: import 包名.包名.類名;在當(dāng)前類中導(dǎo)入對應(yīng)的包中的類,可以在當(dāng)前類中使用包中的類。特殊格式:(最好不用) import 包名.*; 導(dǎo)入這個(gè)包中的所有類。package ;public class Biz /* * 計(jì)算兩個(gè)數(shù)字和的方

11、法 * param i 操作數(shù)1 * param j 操作數(shù)2 * return 兩個(gè)數(shù)的和 */public int add(int i ,int j)return i+j;package com.no1.test;import .Biz;public class Test public static void main(String args) Biz biz = new Biz();int k = biz.add(10, 20);System.out.println(k);11.4 帶包類的編譯和執(zhí)行package no1;public class Testpubl

12、ic static void main(String args)System.out.println("這是一個(gè)輸出內(nèi)容!");編譯帶包類Testjavac -d . Test.java-d . 表示指明帶包類輸出類文件的位置執(zhí)行時(shí):使用類的完整名稱(全限命名)包名.類名java no1.Test11.5 兩個(gè)類之間有關(guān)系時(shí)的執(zhí)行java -cp ./biz;. com.no1.test.Testjava 執(zhí)行com.no1.test.Test 是要執(zhí)行的類-cp 指定class文件的位置-cp ./biz;. 說明執(zhí)行Test類時(shí)class文件在二個(gè)不同的位置12 變量1

13、2.1 什么是變量?變量就是一個(gè)容器。變量就是一個(gè)保存數(shù)據(jù)的容器。程序運(yùn)行過程中會產(chǎn)生或使用大量的數(shù)據(jù)、程序運(yùn)行時(shí)這些數(shù)據(jù)保存到內(nèi)存。變量就是一個(gè)在內(nèi)存中保存數(shù)據(jù)的容器。根據(jù)保存數(shù)據(jù)的不同將變量進(jìn)行相應(yīng)分類。變量分類就是變量的數(shù)據(jù)類型。12.2 數(shù)據(jù)類型根據(jù)變量中保存數(shù)據(jù)的不同,將變量進(jìn)行了類型的劃分。數(shù)據(jù)類型表示一個(gè)變量可以保存什么樣的數(shù)據(jù)。java中數(shù)據(jù)類型分為二個(gè)大類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型在基本數(shù)據(jù)類型中只有8個(gè)數(shù)據(jù)類型。其他全是引用數(shù)據(jù)類型:類(class) 接口(interface)數(shù)組基本數(shù)據(jù):char,boolean,byte,short,int,long,float,do

14、ubleString是一個(gè)什么數(shù)據(jù)類型?引用。char 字符類型:只能保存一個(gè)字符。在java可以保存一個(gè)漢字,支持編碼格式。boolean 布爾類型:只有二個(gè)值,true(真) 和 false(假)byte 字節(jié)類型 : 一個(gè)字節(jié)大小,8位,取值范圍 -128到127short,int,long 整型:保存一個(gè)沒有小數(shù)位的整數(shù)。float,double 小數(shù)型:double類型比float類型可以保存更大的小數(shù)位。12.3 變量的聲明在java中,使用變量時(shí),必須先進(jìn)行變量聲明的操作。聲明格式:數(shù)據(jù)類型變量名;變量名是個(gè)標(biāo)記,就表示了內(nèi)存中的一塊保存數(shù)據(jù)的空間。12.4 變量的初始化在變量聲

15、明完成之后,第一次賦值稱為初始化。在使用變量之前必須進(jìn)行初始化操作。賦值運(yùn)算符: = 初始化的格式:變量名 = 字面量 ;字面量 : 可以保存到變量的數(shù)據(jù)。在聲明變量的同時(shí)進(jìn)行初始化操作類型變量名= 字面量 ;int i = 10;12.5 類型的字面量/char類型可以支持一個(gè)漢字 c = '漢'System.out.println(c);c = 'u5c65'System.out.println(c);所有小數(shù)都默認(rèn)為double 類型。不能直接使用小數(shù)給float 類型賦值。在小數(shù)后面加一個(gè)f做為后綴。float f = 3.14f;12.6 變量的生命周

16、期和作用域 生命周期:生存的范圍。時(shí)間。變量從什么時(shí)間創(chuàng)建到什么時(shí)間銷毀。作用域范圍:在哪些位置可以使用變量。生命周期基本以 為標(biāo)準(zhǔn)。在同一個(gè)作用域范圍里,同名變量不能被聲明多次。public class Test public static void main(String args) int i = 10;/ 在方法中定義的變量稱為局部變量。System.out.println(i);/ int i = 10;/同一個(gè)作用域中的重復(fù)聲明,不可以int j = 20;System.out.println(i);System.out.println(i);/ System.out.printl

17、n(j);/超出了變量j的作用域和生命周期public static void dis() int i = 20;System.out.println(i);12.7 變量的類型轉(zhuǎn)換在java中變量的類型轉(zhuǎn)換分為二種情況:1 自動類型轉(zhuǎn)換。(隱式)2 強(qiáng)制類型轉(zhuǎn)換。(顯示)變量有數(shù)據(jù)類型區(qū)分。每種數(shù)據(jù)類型可以存儲的數(shù)據(jù)的大小不一樣的。不同的數(shù)據(jù)類型占用的內(nèi)存的大小不一致。int 4byte 32位long 8byte 64位類型之間的比較大小byte < short < int < long < float < double12.7.1 自動類型轉(zhuǎn)換一個(gè)小的數(shù)據(jù)類

18、型向一個(gè)大的數(shù)據(jù)類型轉(zhuǎn)換時(shí),自動實(shí)現(xiàn)轉(zhuǎn)換。int i = 10;long l = i;/自動類型轉(zhuǎn)換。12.7.2 強(qiáng)制類型轉(zhuǎn)換當(dāng)一個(gè)大的數(shù)據(jù)類型向一個(gè)小的數(shù)據(jù)類型轉(zhuǎn)換時(shí),有可能會發(fā)生數(shù)據(jù)溢出的情況。所以當(dāng)大向小時(shí),需要按一定的格式進(jìn)行說明,程序是要進(jìn)行轉(zhuǎn)換。格式:小類型 變量 = (小類型)大類型 ;float f = 3.14f;int i = (int)f;13 運(yùn)算符算術(shù)運(yùn)算符 + - * / %比較運(yùn)算符 > < >= = !=邏輯運(yùn)算符&& & | | !賦值運(yùn)算符=+= -= *= .13.1 算術(shù)運(yùn)算符加(+) 減(-) 乘(*)除(/

19、)取余(%)算術(shù)運(yùn)算符主要針對的是數(shù)值類型。int float double在一個(gè)算術(shù)運(yùn)算符的表達(dá)式中如果所有數(shù)據(jù)的類型一致。結(jié)果必然也一樣。int / int 結(jié)果一定是一個(gè) int 5 / 2 在java中結(jié)果一定為 2.如果表達(dá)式中有float數(shù)據(jù)類型,結(jié)果一定是float數(shù)據(jù)類型。如果表達(dá)式中有double數(shù)據(jù)類型,結(jié)果一定是double數(shù)據(jù)類型。如果表達(dá)式中有float和double , 結(jié)果一定是double數(shù)據(jù)類型。表達(dá)式的運(yùn)算結(jié)果最小是int類型。13.2 比較運(yùn)算符><>=<=(橫等)!=比較運(yùn)算符結(jié)果一定是一個(gè)boolean類型數(shù)據(jù)。= 在基本數(shù)據(jù)類

20、型時(shí)就是單純的進(jìn)行數(shù)值的比較相等。13.3 邏輯運(yùn)算符與 并且關(guān)系,true 與 true 結(jié)果為true或 只要有一個(gè)條件為true結(jié)果就為true;非 取反。1 與運(yùn)算符有二個(gè)。&&(短路與)開發(fā)時(shí)經(jīng)常使用。&(邏輯與)2 或運(yùn)算符有二個(gè)|(短路或)開發(fā)時(shí)經(jīng)常使用。|(邏輯或)3 非!if(!true) 邏輯表達(dá)式A & B& 叫邏輯與,A表達(dá)式和B表達(dá)式都必須經(jīng)過計(jì)算得到結(jié)果,確定整個(gè)表達(dá)式的結(jié)果。A && B&& 叫短路與,當(dāng)A表達(dá)式已經(jīng)可以確定整個(gè)表達(dá)式結(jié)果時(shí),B表達(dá)式不用計(jì)算。A | B當(dāng)A表達(dá)式為true時(shí),

21、已經(jīng)能確定整個(gè)表達(dá)式的結(jié)果為true,B表達(dá)式就不用計(jì)算。13.4 位運(yùn)算符位運(yùn)算符主要針對整形數(shù)值進(jìn)行操作的運(yùn)算符。按位進(jìn)行操作運(yùn)算符。位:二進(jìn)制的每一位。13.4.1 位移運(yùn)算符左移 <<將一個(gè)整數(shù)轉(zhuǎn)換成二進(jìn)制,將二進(jìn)制的每一位各左移動。右移 >>>>>(無符號)>>(有符號),當(dāng)數(shù)值為負(fù)數(shù)時(shí),在右移時(shí)的第一位符號位不參與移動。>>>(無符號),當(dāng)數(shù)值為負(fù)數(shù)時(shí),在右移時(shí)的第一位符號位參與移動。public static void main(String args) int i = 4;/100System.out.pr

22、intln(i << 2);/100 -> 10000System.out.println(i >> 2);/100 -> 1System.out.println(i >>> 2);/>>>無符號右移。int j = -4;/一個(gè)int占4個(gè)字節(jié),32位,其中第一位是符號位,第一位如果是0表示正數(shù),1表示負(fù)數(shù)。System.out.println(j >>> 2);/很大的數(shù)System.out.println(j >> 2);/-113.4.2 位運(yùn)算符按位與(&)按位或(|)按位異

23、或()按位取反()按位與運(yùn)算:將兩個(gè)數(shù)字轉(zhuǎn)換成二進(jìn)制,每一位進(jìn)行與運(yùn)算。與運(yùn)算:兩位必須都為1時(shí),結(jié)果才為1。int i = 4;/100int j = 5;/101 & /100 4System.out.println(i & j);/將兩個(gè)數(shù)字轉(zhuǎn)換成二進(jìn)制,每一位進(jìn)行與運(yùn)算。按位取反12 -> -13-12 -> 11A-> -A-1System.out.println(i);/12 = -13System.out.println(-12);/-12 = 11/負(fù)數(shù)在計(jì)算機(jī)是以補(bǔ)碼。/補(bǔ)碼:取反+1./-12 1000 0000 1100/補(bǔ)碼: 1111

24、 1111 0100/-12 0000 0000 1011 /120000 0000 1100/121111 1111 0011/-11111 1111 0010/取反1000 0000 1101 -1313.5 賦值運(yùn)算符= *=+=-= .int k = 2;k *= 5;/k = k * 5;System.out.println(k);13.6 單元運(yùn)算符+ -int i = 1;i+;int j = i;14 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸出 : System.out.println(); System.out.print();標(biāo)準(zhǔn)輸入 : 后期開發(fā)時(shí)基本不用。import java.util.Sca

25、nner;public class Test public static void main(String args) Scanner scanner = new Scanner(System.in);/標(biāo)準(zhǔn)輸入對象的創(chuàng)建/使用scanner對象來輸入基本信息System.out.println("請輸入你的年齡:");int age = scanner.nextInt();scanner.nextLine();/清空緩沖區(qū)System.out.println(age);/使用scanner對象來輸入字符串System.out.println("請輸入地址:&qu

26、ot;);String address = scanner.nextLine();System.out.println(address);類名: java.util.Scanner創(chuàng)建Scanner類對象方式Scanner scanner = new Scanner(System.in);System.in 標(biāo)準(zhǔn)輸入流int age = scanner.nextInt(); /用于接收一個(gè)int類型的數(shù)值。scanner.nextLine();/清空緩沖區(qū)String address = scanner.nextLine();/用于接收一行文本nextLine可以接收空格。15 簡單方法調(diào)用S

27、tring類:字符串類。賦值很方便,比較像基本數(shù)據(jù)類型。String name = "peterSun"比較兩個(gè)字符串是否相等:1 不能使用橫等(=)進(jìn)行比較。2 調(diào)用String類中的方法(equals)進(jìn)行比較。address.equals("北京")用address變量的值與"北京"進(jìn)行比較。如果相等返回trueMath類:算術(shù)類,封裝了大量關(guān)于數(shù)學(xué)運(yùn)算的方法。int i = (int) Math.pow(2,3);System.out.println(i);16 流程控制語句16.1 分類1 順序流程語句2 分支流程語句3 循

28、環(huán)流程語句16.2 關(guān)鍵語法分支:if switch循環(huán):while do-while for(foreach)流程控制語句:break16.3 順序流程就是程序從上向下順序執(zhí)行。程序中一般有開始,結(jié)束,處理,輸入輸出 public static void main(String args) System.out.println("begin");Scanner scanner = new Scanner(System.in);/標(biāo)準(zhǔn)輸入對象的創(chuàng)建System.out.println("請輸入半徑:");int r = scanner.nextInt()

29、;scanner.nextLine();double zc = (2*r*Math.PI);double mj = (Math.PI*r*r);System.out.println("周長是:"+zc);System.out.println("面積是:"+mj);System.out.println("end");流程圖:開始和結(jié)束處理輸入輸出條件判斷16.4 分支流程語句(選擇流程語句)分支流程語句就二個(gè):if和switch。16.4.1 if語句是分支流程中使用最多1 基本格式: if(條件表達(dá)式)語句塊;執(zhí)行原理:當(dāng) 條件表達(dá)表

30、 結(jié)果為true時(shí),才會執(zhí)行 語句塊。當(dāng) 條件表達(dá)式 結(jié)果為false時(shí),跳過語句塊,執(zhí)行if后面的代碼。流程圖:Testpublic void test03()int a = 100;/庫存int b = 10;/購買數(shù)量if( a > b )System.out.println("if");a = a - b;/執(zhí)行減少庫存System.out.println(a);2 標(biāo)準(zhǔn)格式:if-elseif(條件表達(dá)式)語句塊1;else語句塊2;執(zhí)行原理:如果(if) 表達(dá)式為true 則執(zhí)行語句塊1否則(else) 執(zhí)行語句塊2流程圖:3 多條件結(jié)構(gòu):if-elsei

31、f-elseif(條件表達(dá)式1)語句塊1;elseif(條件表達(dá)式2)語句塊2;else語句塊3;執(zhí)行原理:當(dāng) 條件表達(dá)式1 為true時(shí),執(zhí)行語句塊1。if語句結(jié)束。否則 判斷條件表達(dá)式2 為true時(shí),執(zhí)行語句塊2.if語句結(jié)束。否則 執(zhí)行語句塊3流程圖:16.4.2 練習(xí)題:1、判斷一個(gè)數(shù)字是奇數(shù)還是偶數(shù)Testpublic void ex01() Scanner scanner = new Scanner(System.in);System.out.println("請輸入一個(gè)數(shù)字:");int i = scanner.nextInt();scanner.nextL

32、ine();/ 判斷if (i % 2 = 1) System.out.println(i + "是奇數(shù)!"); else System.out.println(i + "是偶數(shù)!");2、輸入年,顯示是否是潤年的Testpublic void ex02() Scanner scanner = new Scanner(System.in);System.out.println("請輸入一個(gè)數(shù)字:");int year = scanner.nextInt();scanner.nextLine();if (year % 400 = 0 |

33、 (year % 4 = 0 && year % 100 != 0) System.out.println(year + "是潤年!"); else System.out.println(year + "不是潤年!");3、判斷一個(gè)數(shù)字是不是“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如153是“水仙花數(shù)”,因?yàn)?53=1*1*1+5*5*5+3*3*3。Testpublic void ex03() Scanner scanner = new Scanner(System.in);System.out.p

34、rintln("請輸入一個(gè)三位數(shù)字:");int i = scanner.nextInt();scanner.nextLine();int bai = i / 100;int shi = i % 100 / 10;int ge = i % 10;if (i = bai * bai * bai + shi * shi * shi + ge * ge * ge) System.out.println(i + "是水仙花數(shù)!"); else System.out.println(i + "不是水仙花數(shù)!");4、輸入三角形的三條邊a,b,c

35、 ,判斷它們能否構(gòu)成三角形,若能則指出是何種三角形:等腰三角形、直角三角形、一般三角形。分別編寫判斷構(gòu)成三角形,判斷是否是等邊三角型,是否是等腰三角型,是否是直角三角型的函數(shù)。Testpublic void ex04() Scanner scanner = new Scanner(System.in);System.out.println("請輸入三個(gè)邊:");int a = scanner.nextInt();scanner.nextLine();int b = scanner.nextInt();scanner.nextLine();int c = scanner.ne

36、xtInt();scanner.nextLine();/ 第一個(gè)判斷。是否是一個(gè)三角形if (a + b > c) && (a + c > b) && (b + c > a) if (a = b && b = c) System.out.println("當(dāng)前是一個(gè)等邊三角形"); else if (a = b | b = c | a = c) /判斷是不是等腰直角三角形if (a * a + b * b = c * c | a * a + c * c = b * b| b * b + c * c = a *

37、 a) System.out.println("等腰直角三角形"); else System.out.println("等腰三角形"); else /判斷是不是直角三角形if (a * a + b * b = c * c | a * a + c * c = b * b| b * b + c * c = a * a) System.out.println("直角三角形"); else System.out.println("三角形"); else System.out.println("不是一個(gè)三角形!&q

38、uot;);16.4.3 switch語句多條件分支語句標(biāo)準(zhǔn)語句格式:switch(變量)case 值1: 語句塊1;break; case 值2: 語句塊2;break; default:語句塊3;執(zhí)行原理:對變量進(jìn)行每一個(gè)case的值的比較(比較是否相等)。如果相等就執(zhí)行對應(yīng)case后的語句塊。如果沒有一個(gè)對應(yīng)的case的值與變量相等時(shí)執(zhí)行default。注意:break作用退出switch結(jié)構(gòu)。流程圖:break的作用:退出整個(gè)結(jié)構(gòu)switch(變量)case 值1: 語句塊1; case 值2: 語句塊2; default:語句塊3;執(zhí)行原理:case 理解為開關(guān)。只要有一個(gè)打開,后面

39、所有的case都直接打開。練習(xí):輸入月份(平年),顯示這個(gè)月有多少天?Testpublic void test01() int month = new Scanner(System.in).nextInt();switch (month) case 2:System.out.println("28");break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println("31");break;case 4:case 6:case 9:case 11:System.out.

40、println("30");break;System.out.println("end");16.4.4 在使用switch時(shí)注意版本的問題在switch(變量).變量有類型。在Switch結(jié)構(gòu)中可以支持的數(shù)據(jù)類型有哪些?1 int2 可以自動轉(zhuǎn)換到int (byte,short,char)3 String (jdk1.7的新特性)4 枚舉(enum)16.4.5 練習(xí)題:5、在屏幕上顯示一張如下所示的時(shí)間表: *Time* 1 morning 2 afternoon 3 night Please enter your choice:操作人員根據(jù)提示進(jìn)行

41、選擇,程序根據(jù)輸入的時(shí)間序號顯示相應(yīng)的問候信息,選擇1時(shí)顯示"Good morning", 選擇2時(shí)顯示"Good afternoon", 選擇3時(shí)顯示"Good night",對于其它選擇顯示"Selection error!",用switch語句編程實(shí)現(xiàn)。6、輸入年月日,計(jì)算日期是今年的第幾天Testpublic void ex06()Scanner scanner = new Scanner(System.in);int year = scanner.nextInt(); int month = scanne

42、r.nextInt();int day = scanner.nextInt();int days=0;/這一年的第幾天switch(month)case 12:days+=30;/加11月的天數(shù)case 11:days+=31;/加10月天數(shù)case 10:days+=30;case 9:days+=31;case 8:days+=31;case 7:days+=30;case 6:days+=31;case 5:days+=30;case 4:days+=31;case 3:days+=28;case 2:days+=31;case 1:days+=day;if(month > 2)i

43、f(year %400 =0 |(year%4=0 && year%100!=0)days+;System.out.println(days);16.5 循環(huán)流程語句循環(huán)就是重復(fù)。有規(guī)律的重復(fù)。循環(huán)有三種:while,do-while,for(重點(diǎn))16.5.1 while循環(huán)語法格式:while(條件表達(dá)式)語句塊;(循環(huán)體)執(zhí)行原理:判斷條件表達(dá)式,如果條件表達(dá)式為true,則執(zhí)行一次語句塊,之后再判斷條件表達(dá)式,如果條件表達(dá)式為true,則執(zhí)行一次語句塊,之后再判斷條件表達(dá)式,如果條件表達(dá)式為true,則執(zhí)行一次語句塊,如果條件表達(dá)式為false時(shí)跳出循環(huán)。流程圖:一般在

44、使用循環(huán)時(shí)都要控制循環(huán)執(zhí)行的次數(shù):/ 控制重復(fù)打印3次,定義一個(gè)計(jì)數(shù)器,每執(zhí)行一次循環(huán)體計(jì)算數(shù)就進(jìn)行加1.int i = 0;while (i < 3) System.out.println("執(zhí)行一次語句體!");i+;其中變量i在循環(huán)中作用是控制循環(huán)次數(shù),一般稱為循環(huán)變量。一個(gè)循環(huán)變量一般三個(gè)動作:1 初始化 int i = 0;2 循環(huán)條件 i < 33 循環(huán)變量的變化規(guī)律 i+也有一些只知道循環(huán)的退出條件。不確定循環(huán)次數(shù)。(推薦大家使用while循環(huán))/變量,每次累加數(shù)字2.當(dāng)變量大于20時(shí)停止。int sum = 0;int i = 0;while(s

45、um <= 20)sum+=2;i+;System.out.println(i);System.out.println(sum);/變量,每次累加數(shù)字2.當(dāng)變量大于20時(shí)停止。int sum = 0;int i = 0;while(true)sum+=2;i+;if(sum > 20)break;System.out.println(i);System.out.println(sum);16.5.2 練習(xí):循環(huán)最重要的二點(diǎn):1 循環(huán)的內(nèi)容2 循環(huán)的規(guī)律7、重復(fù)執(zhí)行"5、在屏幕上顯示一張如下所示的時(shí)間表",直到用戶輸入1-3之外的數(shù)字時(shí)結(jié)束。重復(fù)的內(nèi)容:第5練習(xí)題

46、的內(nèi)容。重復(fù)的規(guī)律:直到用戶輸入1-3之外的數(shù)字時(shí)結(jié)束。只知道結(jié)束循環(huán)的條件,不確定循環(huán)的次數(shù)。Testpublic void ex07() boolean bool = true;/做為循環(huán)的開關(guān)。while (bool) System.out.println("請輸入選擇:");int i = new Scanner(System.in).nextInt();switch (i) case 1:System.out.println("Good morning");break;case 2:System.out.println("Good a

47、fternoon");break;case 3:System.out.println("Good night");break;default:System.out.println("Selection error!");bool = false;/將循環(huán)變量的開關(guān)設(shè)置為關(guān)falsebreak;System.out.println("循環(huán)結(jié)束 !");16.5.3 調(diào)試模式的斷點(diǎn)使用16.5.4 練習(xí):8、計(jì)算1到100的累加。Testpublic void ex08()int i = 1;int sum = 0;while(

48、i<=100)sum+=i;i+;System.out.println(sum);9、計(jì)算N!Testpublic void ex09()int n = 6;int i = 1;int sum = 1;while(i<=n)sum*=i;i+;System.out.println(sum);10、顯示所有的“水仙花數(shù)”Testpublic void ex10() int i = 100;while (i < 1000) int bai = i / 100;int shi = i % 100 / 10;int ge = i % 10;if (i = bai * bai * ba

49、i + shi * shi * shi + ge * ge * ge) System.out.println(i + "是水仙花數(shù)!");i+;11、計(jì)算1!+2!+3!+.+n!在程序處理算法時(shí),常用的算法方法二種:1 窮舉法:將所有的可能全部測試一次。2 歸納法:提取數(shù)學(xué)公式1 窮舉法: n!=1*2*3*4*nTestpublic void ex11()int n = 4;int i = 1;int sum = 0;while(i <= n)int j = 1;int csum = 1;while(j<=i)csum*=j;j+;sum+= csum;i+

50、;System.out.println(sum);2 歸納法:n!=(n-1)!*nTestpublic void ex11()int n = 4;int i = 1;int sum = 0;int csum = 1;while(i <= n)csum*=i;sum+= csum;i+;System.out.println(sum);16.5.5 for循環(huán)循環(huán)還是循環(huán)。只是for循環(huán)的語法格式與while有區(qū)別。語法格式:for( 循環(huán)變量的初始化(1) ; 循環(huán)條件(2) ; 循環(huán)變量的變化規(guī)律(4) )循環(huán)體;(3)執(zhí)行原理:(1)-(2)-true-(3)-(4)-(2)-true-(3)-(4)-(2)-false-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論