day-04基本數(shù)據(jù)類型和運算符下-java基礎(chǔ)語法上_第1頁
day-04基本數(shù)據(jù)類型和運算符下-java基礎(chǔ)語法上_第2頁
day-04基本數(shù)據(jù)類型和運算符下-java基礎(chǔ)語法上_第3頁
day-04基本數(shù)據(jù)類型和運算符下-java基礎(chǔ)語法上_第4頁
day-04基本數(shù)據(jù)類型和運算符下-java基礎(chǔ)語法上_第5頁
免費預(yù)覽已結(jié)束,剩余70頁可下載查看

下載本文檔

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

文檔簡介

本章內(nèi)容關(guān)鍵字標識符常量、進制和進制轉(zhuǎn)換變量數(shù)據(jù)類型和類型轉(zhuǎn)換運算符流程控制結(jié)構(gòu)跳轉(zhuǎn)控制語句關(guān)鍵字關(guān)鍵字概述被Java語言賦予特定含義的單詞關(guān)鍵字特點組成關(guān)鍵字的字母全部小寫關(guān)鍵字注意事項goto和const作為保留字存在,目前并不使用類似Notepad++這樣的高級記事本,針對關(guān)鍵字有特殊的顏色標記,非常直觀關(guān)鍵字用于定義數(shù)據(jù)類型的關(guān)鍵字classinterfacebyteshortintlongfloatdoublecharbooleanvoid用于定義數(shù)據(jù)類型值的關(guān)鍵字truefalsenull用于定義流程控制的關(guān)鍵字ifelseswitchcasedefaultwhiledoforbreakcontinuereturn關(guān)鍵字用于定義訪問權(quán)限修飾符的關(guān)鍵字privateprotectedpublic用于定義類,函數(shù),變量修飾符的關(guān)鍵字abstractfinalstaticsynchronized用于定義類與類之間關(guān)系的關(guān)鍵字extendsimplements用于定義建立實例及引用實例,判斷實例的關(guān)鍵字newthissuperinstanceof用于異常處理的關(guān)鍵字trycatchfinallythrowthrows用于包的關(guān)鍵字packageimport其他修飾符關(guān)鍵字nativestrictfptransientvolatileassert標識符標識符概述就是給類,接口,方法,變量等起名字時使用的字符序列組成規(guī)則英文大小寫字母數(shù)字字符$和_注意事項不能以數(shù)字開頭不能是Java中的關(guān)鍵字區(qū)分大小寫標識符的命名規(guī)則包(其實就是文件夾,用于解決相同類名問題) 單級和多級分別舉例類或者接口 一個單詞和和多個單詞分別舉例方法和變量 一個單詞和和多個單詞分別舉例常量 一個單詞和和多個單詞分別舉例常量常量概述在程序執(zhí)行的過程中其值不可以發(fā)生改變的量Java中常量分類字面值常量自定義常量(面向?qū)ο蟛糠种v)常量字符串常量 用雙引號括起來的內(nèi)容整數(shù)常量 所有整數(shù)小數(shù)常量 所有小數(shù)字符常量 用單引號括起來的內(nèi)容布爾常量 較為特有,只有true和false空常量 null(數(shù)組部分講解)常量的表現(xiàn)形式Java針對整數(shù)常量提供了4種表現(xiàn)形式二進制八進制十進制十六進制進制就是進位制,是人們規(guī)定的一種進位方法。對于任何一種進制--X進制,就表示某一位置上的數(shù)運算時是逢X進一位。二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一。不同進制的數(shù)據(jù)組成二進制 由0,1組成。以0b開頭八進制 由0,1,…7組成。以0開頭十進制 由0,1,…9組成。整數(shù)默認是十進制的十六進制 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭進制之間的相互轉(zhuǎn)換其他進制到十進制通過十進制推出結(jié)論把0b100,0100,0x100轉(zhuǎn)換成十進制十進制到其他進制通過十進制推出結(jié)論把52分別表示成二進制,八進制,十六進制進制之間的快速轉(zhuǎn)換十進制和二進制的快速轉(zhuǎn)換8421碼100轉(zhuǎn)成二進制101101轉(zhuǎn)成十進制二進制和八進制,十六進制如何轉(zhuǎn)換(x進制轉(zhuǎn)換成y進制呢?)以十進制作為橋梁二進制到八進制 3位組合100110二進制到十六進制 4位組合100110有符號數(shù)據(jù)表示法在計算機內(nèi),有符號數(shù)有3種表示法:原碼、反碼和補碼。所有數(shù)據(jù)的運算都是采用補碼進行的。原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數(shù)值的大小。反碼:正數(shù)的反碼與其原碼相同;負數(shù)的反碼是對其原碼逐位取反,但符號位除外。補碼:正數(shù)的補碼與其原碼相同;負數(shù)的補碼是在其反碼的末位加1。變量變量概述在程序執(zhí)行的過程中,在某個范圍內(nèi)其值可以發(fā)生改變的量理解:如同數(shù)學中的未知數(shù)變量定義格式數(shù)據(jù)類型變量名=初始化值;注意:格式是固定的,記住格式,以不變應(yīng)萬變數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型數(shù)值型字符型(char)布爾型(boolean)整數(shù)類型(byte,short,int,long)浮點類型(float,double)類(class)接口(interface)數(shù)組([])Java語言是強類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間數(shù)據(jù)類型整數(shù)默認:int小數(shù)默認:double定義各個數(shù)據(jù)類型的變量編寫案例演示每種不同數(shù)據(jù)類型的變量定義使用變量注意事項:作用域:變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。初始化值:局部變量沒有初始化值不能直接使用在一行上建議只定義一個變量可以定義多個,但是不建議數(shù)據(jù)類型之間運算規(guī)則+是一個運算符,我們應(yīng)該能夠看懂,做數(shù)據(jù)的加法。boolean類型不能轉(zhuǎn)換為其他的數(shù)據(jù)類型默認轉(zhuǎn)換byte,short,char—int—long—float—doublebyte,short,char相互之間不轉(zhuǎn)換,他們參與運算首先轉(zhuǎn)換為int類型強制轉(zhuǎn)換目標類型變量名=(目標類型)(被轉(zhuǎn)換的數(shù)據(jù));第一題:byteb1=3,b2=4,b;b=b1+b2;b=3+4;哪句是編譯失敗的呢?為什么呢?第二題:byteby=130;有沒有問題?有問題如何解決?結(jié)果是多少呢?數(shù)據(jù)類型面試題數(shù)據(jù)類型請寫出下列程序結(jié)果 System.out.println('a'); System.out.println('a'+1); System.out.println("hello"+'a'+1); System.out.println('a'+1+"hello"); System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5");運算符算術(shù)運算符賦值運算符關(guān)系運算符邏輯運算符位運算符三目運算符算術(shù)運算符算術(shù)運算符+,-,*,/都是比較簡單的操作+的幾種作用:加法正數(shù)字符串連接符除法的時候要注意一個問題:整數(shù)相除,只能得到整數(shù)要想得到小數(shù),可以*1.0算術(shù)運算符/和%的區(qū)別++和--的應(yīng)用單獨使用參與運算賦值運算符符號:=,+=,-=,*=,/=,%==為基本的賦值運算符,其他的為擴展的賦值運算符如下操作寫出結(jié)果inta,b;a=b=10;System.out.println(a);System.out.println(b);inta=10;a+=20;System.out.println(a);面試題shorts=1;s=s+1;shorts=1;s+=1;上面兩個代碼有沒有問題,如果有,那里有問題關(guān)系運算符注1:比較運算符的結(jié)果都是boolean型,也就是要么是true,要么是false。注2:比較運算符“==”不能誤寫成“=”。邏輯運算符邏輯運算符邏輯運算符用于連接布爾型表達式,在Java中不可以寫成3<x<6,應(yīng)該寫成x>3&x<6?!?”和“&&”的區(qū)別:單&時,左邊無論真假,右邊都進行運算;雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。 “|”和“||”的區(qū)別同理,雙或時,左邊為真,右邊不參與運算。異或(^)與或(|)的不同之處是:當左右都為true時,結(jié)果為false。位運算符位運算符運算符運算范例<<左移4<<2=16-->4*2*2=16>>右移4>>2=1-->4/4=1位運算是直接對二進制進行運算。位運算符的細節(jié)<<空位補0,被移除的高位丟棄。>>被移位的二進制最高位是0,右移后,空缺位補0;最高位是1,最高位補1。三目運算符格式(關(guān)系表達式)?表達式1:表達式2;如果條件為true,運算后的結(jié)果是表達式1;如果條件為false,運算后的結(jié)果是表達式2;表達式1和表達式2的最終結(jié)果是一個明確的值三目運算符的練習獲取兩個long類型整數(shù)中的最大值,輸出其結(jié)果獲取三個float小數(shù)中的最大值,輸出其結(jié)果比較兩個int整數(shù)是否相同,輸出其結(jié)果鍵盤錄入數(shù)據(jù)鍵盤錄入數(shù)據(jù)概述我們目前在寫程序的時候,數(shù)據(jù)值都是固定的,但是實際開發(fā)中,數(shù)據(jù)值肯定是變化的,所以,我準備把數(shù)據(jù)改進為鍵盤錄入,提高程序的靈活性。如何實現(xiàn)鍵盤錄入數(shù)據(jù)呢?(目前先記住使用)導包(位置放到class定義的上面)importjava.util.Scanner;創(chuàng)建對象Scannersc=newScanner(System.in);接收數(shù)據(jù)intx=sc.nextInt();鍵盤錄入數(shù)據(jù)練習鍵盤錄入兩個int類型數(shù)據(jù),并對這兩個數(shù)據(jù)求和,輸出其結(jié)果鍵盤錄入兩個long類型數(shù)據(jù),獲取這兩個數(shù)據(jù)中的最大值,輸出其結(jié)果鍵盤錄入三個float類型數(shù)據(jù),獲取這三個數(shù)據(jù)中的最大值,輸出其結(jié)果鍵盤錄入兩個byte類型數(shù)據(jù),比較這兩個數(shù)據(jù)是否相等,輸出其結(jié)果流程控制結(jié)構(gòu)在一個程序執(zhí)行的過程中,各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。也就是說程序的流程對運行結(jié)果有直接的影響。所以,我們必須清楚每條語句的執(zhí)行流程。而且,很多時候我們要通過控制語句的執(zhí)行順序來實現(xiàn)我們要完成的功能。流程控制語句分類順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)概述是程序中最簡單最基本的流程控制,沒有特定的語法結(jié)構(gòu),按照代碼的先后順序,依次執(zhí)行,程序中大多數(shù)的代碼都是這樣執(zhí)行的??偟膩碚f:寫在前面的先執(zhí)行,寫在后面的后執(zhí)行順序結(jié)構(gòu)順序結(jié)構(gòu)圖選擇結(jié)構(gòu)選擇結(jié)構(gòu)也被稱為分支結(jié)構(gòu)。選擇結(jié)構(gòu)有特定的語法規(guī)則,代碼要執(zhí)行具體的邏輯運算進行判斷,邏輯運算的結(jié)果有兩個,所以產(chǎn)生選擇,按照不同的選擇執(zhí)行不同的代碼。Java語言提供了兩種選擇結(jié)構(gòu)語句if語句switch語句if語句第一種格式if(關(guān)系表達式){ 語句體; }執(zhí)行流程首先判斷關(guān)系表達式看其結(jié)果是true還是false如果是true就執(zhí)行語句體如果是false就不執(zhí)行語句體if語句第一種格式圖解if語句注意事項注意事項關(guān)系表達式無論簡單還是復(fù)雜,結(jié)果必須是boolean類型if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。一般來說:有大括號就沒有分號,有分號就沒有大括號if語句第二種格式if(關(guān)系表達式){ 語句體1; }else{ 語句體2; }執(zhí)行流程首先判斷關(guān)系表達式看其結(jié)果是true還是false如果是true就執(zhí)行語句體1如果是false就執(zhí)行語句體2if語句第二種格式圖解鍵盤錄入數(shù)據(jù),判斷兩個數(shù)據(jù)是否相同,并輸出結(jié)果鍵盤錄入數(shù)據(jù),輸出兩個數(shù)中較大的值,并輸出結(jié)果鍵盤錄入數(shù)據(jù),判斷數(shù)據(jù)是奇數(shù)還是偶數(shù)if第二種語句練習if語句第二種格式和三元運算符我們前面講解過三元運算符,它根據(jù)比較判斷后,給出的也是兩個結(jié)果,所以,這種情況和if語句的第二種格式很相似,他們在某些情況下應(yīng)該是可以相互轉(zhuǎn)換的。if語句第二種格式和三元運算符三元運算符的操作都可以使用if語句改進,反之不成立什么時候不成立呢?當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結(jié)果返回。而輸出語句卻不能作為一個返回結(jié)果。if語句第三種格式if(關(guān)系表達式1){ 語句體1;}elseif(關(guān)系表達式2){ 語句體2;} …else{ 語句體n+1;}if語句第三種格式執(zhí)行流程執(zhí)行流程首先判斷關(guān)系表達式1看其結(jié)果是true還是false如果是true就執(zhí)行語句體1如果是false就繼續(xù)判斷關(guān)系表達式2看其結(jié)果是true還是false如果是true就執(zhí)行語句體2如果是false就繼續(xù)判斷關(guān)系表達式…看其結(jié)果是true還是false…如果沒有任何關(guān)系表達式為true,就執(zhí)行語句體n+1。if語句第三種格式執(zhí)行圖解選擇結(jié)構(gòu)(if語句練習)鍵盤錄入x的值,計算出y的并輸出。鍵盤錄入月份的值,輸出對應(yīng)的季節(jié)。鍵盤錄入三個數(shù)據(jù),然后獲取最大值switch語句格式switch(表達式){ case常量值1: 語句體1; break; case常量值2: 語句體2; break; … default: 語句體n+1; break;}switch語句格式解釋switch表示這是switch語句表達式的取值:byte,short,int,char,longJDK7以后可以是Stringcase后面跟的是要和表達式進行比較的值語句體部分可以是一條或多條語句break表示中斷,結(jié)束的意思,可以結(jié)束switch語句default語句表示所有情況都不匹配的時候,就執(zhí)行該處的內(nèi)容,和if語句的else相似。switch語句執(zhí)行流程首先計算出表達式的值其次,和case依次比較,一旦有對應(yīng)的值,就會執(zhí)行相應(yīng)的語句,在執(zhí)行的過程中,遇到break就會結(jié)束。最后,如果所有的case都和表達式的值不匹配,就會執(zhí)行default語句體部分,然后程序結(jié)束掉。switch語句格式圖解switch語句注意事項case后面只能是常量,不能是變量,而且,多個case后面的值不能出現(xiàn)相同的default可以省略嗎?可以省略。一般不建議。除非判斷的值是固定的。break可以省略嗎?可以省略,一般不建議。default的位置一定要在最后嗎?可以出現(xiàn)在switch語句任意位置。switch語句的結(jié)束條件遇到break執(zhí)行到程序的末尾switch語句練習用switch語句實現(xiàn)鍵盤錄入月份,輸出對應(yīng)的季節(jié)選擇結(jié)構(gòu)(各自使用場景)在做判斷的時候,我們有兩種選擇,if語句和switch語句,那么,我們到底該如何選擇使用那種語句呢?if語句使用場景:針對結(jié)果是boolean類型的判斷針對一個范圍的判斷針對幾個常量值的判斷switch語句使用場景:針對幾個常量值的判斷循環(huán)結(jié)構(gòu)概述循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句體,當反復(fù)執(zhí)行這個循環(huán)語句體時,需要在合適的時候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。循環(huán)結(jié)構(gòu)的組成初始化語句:一條或者多條語句,這些語句完成一些初始化操作。判斷條件語句:這是一個boolean表達式,這個表達式能決定是否執(zhí)行循環(huán)語句體。循環(huán)體語句:這個部分是要被反復(fù)執(zhí)行的語句,也就是我們要多次做的事情??刂茥l件語句:這個部分在一次循環(huán)執(zhí)行結(jié)束后,下次判斷循環(huán)條件是否成立前,會改變用于判斷循環(huán)變量的值,使得循環(huán)在合適的時候結(jié)束。for循環(huán)語句格式for(初始化語句;判斷條件語句;控制條件語句){循環(huán)體語句體;}執(zhí)行流程A:執(zhí)行初始化語句B:執(zhí)行判斷條件語句,看其結(jié)果是true還是false如果是false,循環(huán)結(jié)束。如果是true,繼續(xù)執(zhí)行。C:執(zhí)行循環(huán)體語句D:執(zhí)行控制條件語句E:回到B繼續(xù)for循環(huán)語句圖解for循環(huán)語句注意事項判斷條件語句的結(jié)果是一個boolean類型循環(huán)體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。一般來說:有左大括號就沒有分號,有分號就沒有大括號for循環(huán)語句練習請在控制臺輸出數(shù)據(jù)1-10請在控制臺輸出數(shù)據(jù)10-1求出1-10之間數(shù)據(jù)之和求出1-100之間偶數(shù)和求出1-100之間奇數(shù)和for循環(huán)語句練習請統(tǒng)計1-1000之間分別滿足如下條件的數(shù)據(jù)有多少個:對3整除余2對5整除余3對7整除余2while循環(huán)語句格式基本格式while(判斷條件語句){循環(huán)體語句體;}擴展格式初始化語句;while(判斷條件語句){循環(huán)體語句體;控制條件語句;}while循環(huán)語句格式圖解for循環(huán)和while循環(huán)的區(qū)別使用區(qū)別:控制條件語句所控制的那個變量,在for循環(huán)結(jié)束后,就不能再被訪問到了,而while循環(huán)結(jié)束還可以繼續(xù)使用,如果你想繼續(xù)使用,就用while,否則推薦使用for。原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失,能夠提高內(nèi)存的使用效率。場景區(qū)別:for循環(huán)適合針對一個范圍判斷進行操作while循環(huán)適合判斷次數(shù)不明確操作while循環(huán)語句練習教室高度:48m,我現(xiàn)在有一張足夠大的紙張,厚度為:0.12m。請問,我折疊多少次,就可以保證厚度不低于教室的高度?do…while循環(huán)語句格式基本格式do{循環(huán)體語句;}while(判斷條件語句);擴展格式初始化語句;do{循環(huán)體語句;控制條件語句;}while(判斷條件語句);do…while循環(huán)語句格式圖解三種循環(huán)語句區(qū)別及注意事項使用場景:do...while循環(huán)語句體至少會執(zhí)行一次for循環(huán)和while循環(huán)只有在條件成立的時候才會執(zhí)行循環(huán)語句體推薦使用:對固定范圍內(nèi)的循環(huán)推薦使用for對未知的范圍內(nèi)的循環(huán)推薦使用while對至少需要執(zhí)行一次循環(huán)語句體的推薦使用do...while如下代碼是死循環(huán)while(true){}for(;;){}循環(huán)結(jié)構(gòu)(循環(huán)嵌套使用)1.請輸出一個

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論