Java程序設(shè)計(jì)項(xiàng)目式教程 課件 單元2 Java程序設(shè)計(jì)基礎(chǔ)_第1頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 單元2 Java程序設(shè)計(jì)基礎(chǔ)_第2頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 單元2 Java程序設(shè)計(jì)基礎(chǔ)_第3頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 單元2 Java程序設(shè)計(jì)基礎(chǔ)_第4頁
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 單元2 Java程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩101頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

§2-1學(xué)生基本信息處理Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

在“學(xué)生信息管理系統(tǒng)”中,每個(gè)學(xué)生的基本信息包括:學(xué)號(hào)、姓名、性別、年齡等,在程序中對(duì)學(xué)生信息進(jìn)行合理地描述、處理及數(shù)據(jù)的輸入、輸出是完成系統(tǒng)設(shè)計(jì)的第一步。完成此項(xiàng)任務(wù),需要用到數(shù)據(jù)類型、標(biāo)識(shí)符、常量、變量、變量的聲明及數(shù)據(jù)基本運(yùn)算等。1Java基本數(shù)據(jù)類型Java關(guān)鍵字與標(biāo)識(shí)符2教學(xué)內(nèi)容3Java中的運(yùn)算符與表達(dá)式Java常量與變量45數(shù)據(jù)基本輸入輸出

一、Java關(guān)鍵字與標(biāo)識(shí)符關(guān)鍵字(Keyword)是由系統(tǒng)定義的、具有專門意義和用途的專用詞匯或符號(hào),也稱為保留字。在Java語言中共有數(shù)據(jù)類型、程序流程控制等近50個(gè)關(guān)鍵字,關(guān)鍵字均用小寫字母表示。1.關(guān)鍵字一、Java關(guān)鍵字與標(biāo)識(shí)符標(biāo)識(shí)符(Identifier)是程序中所使用的各種名字。在Java中,標(biāo)識(shí)符可以包含字母、數(shù)字、下劃線(_)和美元符號(hào)($),其中的字母不僅限于英文字母,也可以是漢字、希臘文、日文和韓文等。Java語言的標(biāo)識(shí)符區(qū)分大小寫字母,不能以數(shù)字開頭,沒有最大長(zhǎng)度限制。Java語言的關(guān)鍵字不能用來作為標(biāo)識(shí)符。例如,identifier,userName,User_Name,_sys_val,$change都是合法的標(biāo)識(shí)符,而2mail,room#,class則為非法的標(biāo)識(shí)符。2.標(biāo)識(shí)符二、Java基本數(shù)據(jù)類型數(shù)據(jù)是程序的重要組成部分,也是程序處理的對(duì)象。Java語言提供的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型兩大類。本節(jié)主要介紹基本數(shù)據(jù)類型。每種類型的數(shù)據(jù)都有各自的表示方法,并有不同的數(shù)據(jù)表示范圍。三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量1.常量常量是在程序執(zhí)行過程中其值保持不變的量。Java支持如下幾種類型的常量:整型常量、實(shí)型常量、布爾型常量、字符型常量。(1)整型常量整型常量就是整數(shù),包括byte、short、int、long四種。Java的整型常量可以采用十進(jìn)制、八進(jìn)制或十六進(jìn)制表示,其中byte、short和int的表示方法相同,而長(zhǎng)整型必須在數(shù)字的后面加字母L(或l),以表示該數(shù)是長(zhǎng)整型。整型常量可表示為:十進(jìn)制、八進(jìn)制和十六進(jìn)制三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量1.常量十進(jìn)制表示:由一個(gè)或多個(gè)從0到9的數(shù)字和正負(fù)號(hào)組成,如347,987L,-56,0等。十六進(jìn)制表示:以0x或0X開頭,由一個(gè)或多個(gè)十六進(jìn)制數(shù)組成。十六進(jìn)制數(shù)字包括0~9及字母A到F(或a到f)。如:0xA873、0X983e5c、-0x98L等。八進(jìn)制表示:以數(shù)字0開頭的一個(gè)或多個(gè)八進(jìn)制數(shù)組成。八進(jìn)制數(shù)字包括0~7如:0246、0876L,-0123等。三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量1.常量(2)實(shí)型常量Java的實(shí)數(shù)也稱為浮點(diǎn)數(shù),分為單精度浮點(diǎn)數(shù)(float)和雙精度浮點(diǎn)數(shù)(double)兩種類型,單精度實(shí)數(shù)要在數(shù)字末尾加f(或F),否則默認(rèn)為雙精度實(shí)數(shù)。實(shí)數(shù)只能采用十進(jìn)制表示,有小數(shù)和指數(shù)兩種形式。當(dāng)一個(gè)實(shí)數(shù)很大或很小時(shí),可以使用指數(shù)形式,其指數(shù)部分用字母E(或e)表示。要注意的是,e或E前面必須有數(shù)字,而且e或E的后面必須為整數(shù)。如:0.4e2、-1.3E2f等。(3)布爾常量Java中布爾型(boolean)常量只有兩個(gè)值:true或false,表示“真”或“假”兩種狀態(tài)。三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量1.常量(4)字符常量Java語言使用16位的Unicode字符集。字符常量是由單引號(hào)括起的單個(gè)字符。如:'a','6','我','M','&'等。字符常量是無符號(hào)常量,在內(nèi)存中占2個(gè)字節(jié),每個(gè)字符常量表示Unicode字符集中的一個(gè)字符。Unicode字符集不僅包括標(biāo)準(zhǔn)的ASCII字符集,還包括許多其他系統(tǒng)的通用字符集,如拉丁文、法文、希臘語、漢語、日語、韓文等,使Java的語言處理能力大大增強(qiáng),為Java程序在基于不同語言的平臺(tái)間實(shí)現(xiàn)平滑移植奠定了基礎(chǔ)。在Java中還有一類以反斜杠(\)開始的特殊的字符,稱其為轉(zhuǎn)義符。如'\n'代表回車換行等,如表2-2。三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量1.常量(5)符號(hào)常量Java語言使用final關(guān)鍵字來定義一個(gè)符號(hào)常量,其語法為:

final常量類型常量名稱=常量值;常量名稱一般使用大寫字母。如:

finalintN=20;N則稱為符號(hào)常量,代表20。三、Java常量與變量數(shù)據(jù)在程序中的表示形式主要有兩種形式:常量和變量2.變量變量是在程序執(zhí)行過程中其值可以變化的量,變量都在內(nèi)存中的一塊存儲(chǔ)空間,用于存儲(chǔ)該變量的值。Java是嚴(yán)格區(qū)分?jǐn)?shù)據(jù)類型的強(qiáng)類型語言,要求在程序中使用任何變量之前必須先聲明其類型。變量聲明的一般格式:

類型標(biāo)識(shí)符

變量名1,變量名2,......如:intx,y;//聲明兩個(gè)整型變量x、y變量初始化,在聲明變量的同時(shí)賦予一個(gè)特定的值,如:intx=10;

三、Java常量與變量變量的聲明、賦值和使用變量的使用說明規(guī)則示例變量的聲明創(chuàng)建變量數(shù)據(jù)類型變量名;intage;floatheight;StringuserName;變量的賦值往內(nèi)存空間中存儲(chǔ)數(shù)據(jù)變量名=值;intage;age=25;變量的初始化聲明同時(shí)賦值數(shù)據(jù)類型變量名=初始值;intage=25,s;floatheight=177.68f;變量的引用獲取內(nèi)存空間中存儲(chǔ)的數(shù)據(jù)通過變量名使用變量的值

System.out.println("年齡為:"+age);三、Java常量與變量【例2-1】基本變量使用。publicclassBasicTypeDemo{publicstaticvoidmain(Stringargs[]){bytea=120;shortb=255;intc=2200;longd=8000;floatf;doubleg=123456789.123456789;b=a;c=(int)d;//強(qiáng)制性類型轉(zhuǎn)換f=(float)g;//導(dǎo)致精度的損失

System.out.print("a="+a);System.out.println("b="+b);System.out.print("c="+c);System.out.println("d="+d);System.out.println("f="+f);System.out.println("g="+g);}}四、Java中的運(yùn)算符與表達(dá)式按照運(yùn)算符要求的操作數(shù)(運(yùn)算量)個(gè)數(shù)有三種類型運(yùn)算符:?jiǎn)文窟\(yùn)算符:只要求一個(gè)運(yùn)算量,如:++、--等雙目運(yùn)算符:要求兩個(gè)運(yùn)算量,如:+、-|*、/等三目運(yùn)算符:要求三個(gè)運(yùn)算量,Java中僅有一個(gè)三目運(yùn)算符:

?

:按照運(yùn)算符的功能來劃分有以下幾種類型運(yùn)算符:算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符等運(yùn)算符分類表達(dá)式:由操作數(shù)和運(yùn)算符組成的有意義的運(yùn)算式,稱為表達(dá)式,其運(yùn)算結(jié)果稱為表達(dá)式值

。四、Java中的運(yùn)算符與表達(dá)式1.算術(shù)運(yùn)算操作數(shù)或表達(dá)式操作數(shù)或表達(dá)式算術(shù)運(yùn)算符*+-/%加減乘除求余"成績(jī)?yōu)椋?+85.5+"分" //結(jié)果為"成績(jī)?yōu)椋?5.5分"

5/2 //結(jié)果為25.0/2 //結(jié)果為2.5

5%3 //結(jié)果為2由算術(shù)運(yùn)算符構(gòu)成的表達(dá)式,稱為算術(shù)表達(dá)式。四、Java中的運(yùn)算符與表達(dá)式2.自加自減運(yùn)算自增自減運(yùn)算符都屬于一元運(yùn)算符。自增運(yùn)算符:“++”是對(duì)變量的值加1,自減運(yùn)算符“--”是對(duì)變量的值減1。自增自減運(yùn)算符雙有前綴、后綴兩形式。前綴形式:++x或--x,運(yùn)算規(guī)則:“先增減,后使用”后綴形式:x++或x--,運(yùn)算規(guī)則:“先使用,后增減”y=x++;y=++x;

y=x;x=x+1;

x=x+1;y=x;說明:1)自加自減運(yùn)算的操作數(shù)只能是變量,而不能是常量或表達(dá)式。例如3++或++(a+b)都是錯(cuò)誤的。2)自加自減運(yùn)算的結(jié)合方向是“從右到左”,其優(yōu)先級(jí)別高于基本算術(shù)運(yùn)算符。四、Java中的運(yùn)算符與表達(dá)式【例2-2】自加運(yùn)算符和自減運(yùn)算符的使用示例。publicclassAutoIncDemo{publicstaticvoidmain(String[]args){intx=5;System.out.println("x:"+x);System.out.println("++x:"+(++x));System.out.println("x++:"+(x++));System.out.println("x:"+x);System.out.println("--x:"+(--x));System.out.println("x--:"+(x--));System.out.println("x:"+x);}}四、Java中的運(yùn)算符與表達(dá)式3.關(guān)系運(yùn)算

關(guān)系運(yùn)算也稱為比較運(yùn)算,用于比較兩個(gè)表達(dá)式的大小。Java共提供六種關(guān)系運(yùn)算符,如下表所示。關(guān)系運(yùn)算符名稱實(shí)例(a=23結(jié)果優(yōu)先級(jí)別==等于a==bfalse同級(jí)低!=不等于a!=btrue>大于a>btrue同級(jí)高<小于a<bfalse>=大于等于a>=btrue<=小于等于a<=bfalse說明:由關(guān)系運(yùn)算符構(gòu)成的表達(dá)式稱為關(guān)系表達(dá)式,多用于控制結(jié)構(gòu)的條件判斷中。關(guān)系運(yùn)算的結(jié)果為邏輯值true(真)或false(假)。四、Java中的運(yùn)算符與表達(dá)式4.邏輯運(yùn)算

邏輯運(yùn)算是對(duì)true(真)或false(假)邏輯量進(jìn)行的運(yùn)算。Java提供的邏輯運(yùn)算符有!(非)、&或&&(與)、|或||(或)以及^(異或)。邏輯運(yùn)算符屬于二元運(yùn)算符,常用來表示一些復(fù)雜的關(guān)系運(yùn)算。注意&或&&(與)、|或||(或)的區(qū)別邏輯運(yùn)算符名稱實(shí)例說明!非!a取反。a為true,!a為false&或&&與a&b或a&&ba和b都為true,結(jié)果為true,否則皆為false|或||或a|b或a||ba和b都為false,結(jié)果為false,否則皆為true^異或a^ba和b同值,結(jié)果為false,不同為true四、Java中的運(yùn)算符與表達(dá)式5.賦值運(yùn)算

變量賦值通過賦值運(yùn)算符(=)完成,其語法格式為:

變量名=表達(dá)式;作用:計(jì)算賦值符右邊表達(dá)式的值,并把它賦值給左邊的變量。右邊表達(dá)式的值可以是任何類型的,但左邊必須是一個(gè)明確的、已命名的變量,而且該變量的類型必須與表達(dá)式值的類型一致。例如:

intm,k;

booleanf1;

m=17;k=5;

f1=m>k;四、Java中的運(yùn)算符與表達(dá)式5.賦值運(yùn)算

變量賦值通過賦值運(yùn)算符(=)完成,其語法格式為:

變量名=表達(dá)式;作用:計(jì)算賦值符右邊表達(dá)式的值,并把它賦值給左邊的變量。右邊表達(dá)式的值可以是任何類型的,但左邊必須是一個(gè)明確的、已命名的變量,而且該變量的類型必須與表達(dá)式值的類型一致。例如:intm,k;

booleanf1;

m=17;k=5;

f1=m>k;由賦值運(yùn)算符構(gòu)成的表達(dá)式稱為賦值表達(dá)式,賦值表達(dá)式的值等于賦值運(yùn)算符右側(cè)表達(dá)式的值。因此賦值表達(dá)式m=17的值為17,k=5的值為5。賦值運(yùn)算符具有右結(jié)合性,表達(dá)式可以連續(xù)賦值。下面表達(dá)式是合法的:m=n=k=5;四、Java中的運(yùn)算符與表達(dá)式5.賦值運(yùn)算

在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,就構(gòu)成了復(fù)合賦值運(yùn)算符。

運(yùn)算符意義示例+=左邊的變量和右邊的值相加后賦給左邊的變量a+=2;相當(dāng)于a=a+2;-=左邊的變量和右邊的值相減后賦給左邊的變量a-=2;相當(dāng)于a=a-2;*=左邊的變量和右邊的值相乘后賦給左邊的變量a*=b;相當(dāng)于a=a*b;/=左邊的變量和右邊的值相除后賦給左邊的變量a/=b;相當(dāng)于a=a/b;%=左邊的變量和右邊的值相除取余后賦給左邊的變量a%=b;相當(dāng)于a=a%b;注意:類似“a*=b+5”的作用是使a乘以(b+5)的值后在賦值給a,即a=a*(b+5),而不能理解為a=a*b+5,四、Java中的運(yùn)算符與表達(dá)式6.條件運(yùn)算

條件運(yùn)算符(?:)是Java中唯一一個(gè)三元運(yùn)算符,由它構(gòu)成的表達(dá)式稱為條件表達(dá)式,其語法格式為:

表達(dá)式1?表達(dá)式2:表達(dá)式3

若“表達(dá)式1”的結(jié)果為true,就以“表達(dá)式2”的值作為該條件表達(dá)式的值;若“表達(dá)式1”的結(jié)果為false,則以“表達(dá)式3”的值作為它的值。例如:intm=i<10?i*100:i*10;當(dāng)i的值小于10時(shí),m的值為i*100,i的值大于或等于10時(shí),m的值為i*10。

四、Java中的運(yùn)算符與表達(dá)式7.運(yùn)算符的優(yōu)先級(jí)

在一個(gè)表達(dá)式中往往存在多個(gè)運(yùn)算符,此時(shí)要按照各個(gè)運(yùn)算符的優(yōu)先級(jí)及結(jié)合性進(jìn)行運(yùn)算。即首先運(yùn)算優(yōu)先級(jí)高的運(yùn)算符,再運(yùn)算優(yōu)先級(jí)較低的,相同優(yōu)先級(jí)的運(yùn)算符要按照它們的結(jié)合性來決定運(yùn)算次序。運(yùn)算符的結(jié)合性決定它們是從左到右計(jì)算還是從右到左計(jì)算

。

常用運(yùn)算符優(yōu)先級(jí)別及結(jié)合方向優(yōu)先級(jí)運(yùn)算符名稱結(jié)合性1()括號(hào)

2-(取負(fù)數(shù)),!,++,--一元運(yùn)算符右—左3*,/,%乘,除,取模左—右4+,-加,減左—右5>,<,>=,<=關(guān)系運(yùn)算符左—右6==,!=等于,不等于左—右7^異域左—右8&&邏輯與左—右9||邏輯或左—右10?:條件運(yùn)算符右—左11==*=/=%=+=-=(復(fù)合)賦值運(yùn)算符右—左四、Java中的運(yùn)算符與表達(dá)式8.數(shù)據(jù)類型轉(zhuǎn)換

(1)自動(dòng)類型轉(zhuǎn)換轉(zhuǎn)換規(guī)則為:(byte或

short)

op

int→

int(byte或

short或

int)

op

long→

long(byte或

short或

int或

long)

op

float→

float(byte或

short或

int或

long或

float)

op

double→

doublechar

op

int→

int其中,箭頭左邊表示參與運(yùn)算的數(shù)據(jù)類型,op為運(yùn)算符(如加、減、乘、除等);箭頭右邊表示轉(zhuǎn)換后的數(shù)據(jù)類型。自動(dòng)類型轉(zhuǎn)換規(guī)則可歸納為:向高看齊。

四、Java中的運(yùn)算符與表達(dá)式【例2-3】自動(dòng)類型轉(zhuǎn)換應(yīng)用。public

class

PromotionDemo{

public

static

void

main(

String

args[

]

){

byte

b=10;

char

c='a';

int

i=90;

long

l=555L;

float

f=3.5f;

double

d=1.234;

float

f1=f*b;//

float

*

byte

–>

float

int

i1=c+i;//

char

+

int

->

int

long

l1=l+i1;//

long

+

int

->ling

double

d1=f1/i1-d;//

float

/

int

->float,

float

-

double

->

double}}四、Java中的運(yùn)算符與表達(dá)式8.數(shù)據(jù)類型轉(zhuǎn)換

(2)強(qiáng)制類型轉(zhuǎn)換高精度數(shù)據(jù)轉(zhuǎn)換成低精度數(shù)據(jù)時(shí),需要用到強(qiáng)制類型轉(zhuǎn)換。即把一個(gè)容量較大的數(shù)據(jù)類型向一個(gè)容量較小的數(shù)據(jù)類型轉(zhuǎn)換時(shí),可能面臨信息丟失的危險(xiǎn),此時(shí)必須使用強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換的形式為:

(類型)表達(dá)式(或變量名)例如,voidcasts(){inti=200;longj=8L;longl=i;//自動(dòng)類型轉(zhuǎn)換i=(int)j;//強(qiáng)制類型轉(zhuǎn)換}五、數(shù)據(jù)基本輸入輸出1.標(biāo)準(zhǔn)輸入

標(biāo)準(zhǔn)輸入即將數(shù)據(jù)通過鍵盤輸入到程序中。在Java中,要完成數(shù)據(jù)的鍵盤輸入,一種比較簡(jiǎn)單的方法是借助系統(tǒng)提供的工具類Scanner。先構(gòu)造一個(gè)Scanner類的對(duì)象,然后通過該對(duì)象調(diào)用Scanner類的不同方法來完成各種類型數(shù)據(jù)的輸入。例如:

Scannerin=newScanner(System.in);然后可以調(diào)用Scanner類中的方法,實(shí)現(xiàn)輸入數(shù)據(jù)的操作。Scanner類的常用數(shù)據(jù)輸入的方法主要有:

next()//輸入一個(gè)單詞(中間無空格符)

nextLine()//輸入一行字符(中間可以包含空格符)

nextInt()//輸入一個(gè)整數(shù)

nextDouble()//輸入一個(gè)浮點(diǎn)數(shù)說明:Scanner類定義在Java.util包中,在編寫程序時(shí),要在程序的最開始處加入語句:

importjava.util.Scanner;//將Scanner類導(dǎo)入。五、數(shù)據(jù)基本輸入輸出【例2-4】詢問用戶的姓名和年齡,然后打印一條如下格式的信息:

Hello,XXX.Nextyear,your'llbe20yearsold.importjava.util.Scanner;publicclassInputTest{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);System.out.println("Whatisyourname?");

Stringname=in.nextLine();//讀取用戶的名

System.out.println("Howoldareyou?");

intage=in.nextInt();

//讀取用戶的年齡

in.close();

//輸出信息

System.out.print("Hello,"+name+".“);

System.out.println("Nextyear,you'llbe"+(age+1)+”yearsold.”);

}}五、數(shù)據(jù)基本輸入輸出2.標(biāo)準(zhǔn)輸出

標(biāo)準(zhǔn)輸出也稱為基本輸出,即將程序處理后的數(shù)據(jù)在顯示器上展示給用戶。在Java中,若程序運(yùn)行時(shí)需要通過顯示器輸出數(shù)據(jù),則需要使用Java提供的輸出流功能。其常用的主要方法是通過System.out調(diào)用println()和print()方法。這兩種方法的區(qū)別在于:print()方法在輸出括號(hào)里指定的參數(shù)后就結(jié)束操作,而不再添加回車,光標(biāo)停留在輸出內(nèi)容最后一個(gè)字符的右邊,而println()則添加回車,光標(biāo)停在下一行開頭位置。五、數(shù)據(jù)基本輸入輸出【例2-5】常用格式化輸出應(yīng)用示例。

publicclassPrintfDemo{ publicstaticvoidmain(String[]args){

System.out.printf("我是%s,性別%c,今年%d歲%n","小新",'男',18);//%s格式化字符串,%c格式化字符//%d格式化整數(shù)(十進(jìn)制)%n換行與\n相同, System.out.printf("我的名字是:%s\n","小新"); System.out.printf("小新今年%d歲%n",18); System.out.printf("八進(jìn)制數(shù)字%o%n",63);

//%o格式化整數(shù)(八進(jìn)制) System.out.printf("十六進(jìn)制數(shù)字%x%n",255);

//%x格式化整數(shù)(十六進(jìn)制) System.out.printf("輸出字符%c%n",97); System.out.printf("輸出字符%c%n",'a'); System.out.printf("布爾值%b%n",true);

//%b格式化布爾值 System.out.printf("浮點(diǎn)型數(shù)據(jù)%f%n",1.555); //%f格式化浮點(diǎn)型 System.out.printf("保留兩位小數(shù)%.2f",1.2555);

//%.2f為保留兩位小數(shù)(會(huì)四舍五入)}}任務(wù)實(shí)施“學(xué)生基本信息處理”任務(wù)實(shí)施步驟。1)變量聲明:將學(xué)生的每一項(xiàng)信息聲明為一個(gè)變量,根據(jù)信息的實(shí)際內(nèi)容確定變量名及類型;2)鍵盤輸入信息(或給變量賦值);3)根據(jù)需要完成數(shù)據(jù)處理;4)輸出學(xué)生信息。完成“工單2-1”訓(xùn)練任務(wù)同步訓(xùn)練P55課后作業(yè):三、1,四、2課后作業(yè)§2-2學(xué)科成績(jī)處理Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

在學(xué)生成績(jī)處理中經(jīng)常需要根考試分?jǐn)?shù)確定成績(jī)的等級(jí),即:優(yōu)、良、中、不及格,這就需要先對(duì)成績(jī)進(jìn)行邏輯判斷,然后再給出相應(yīng)等級(jí),實(shí)現(xiàn)這類任務(wù)就需要用到程序設(shè)計(jì)的選擇結(jié)構(gòu)(分支結(jié)構(gòu))。教學(xué)內(nèi)容1if選擇結(jié)構(gòu)的實(shí)現(xiàn)及應(yīng)用程序設(shè)計(jì)基本結(jié)構(gòu)23switch結(jié)構(gòu)的構(gòu)成及應(yīng)用一、程序設(shè)計(jì)基本結(jié)構(gòu)

Java程序設(shè)計(jì)同樣也使用三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),每個(gè)基本結(jié)構(gòu)都包含一個(gè)入口和一個(gè)出口。行流程如圖2-4所示。順序結(jié)構(gòu):順序結(jié)構(gòu)表示程序中的各操作語句是按照它們的書寫順序先后執(zhí)行的。選擇結(jié)構(gòu):選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu),表示程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行。循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)表示程序反復(fù)執(zhí)行某個(gè)或某些操作,直到某條件為假時(shí)才可終止循環(huán)。一、程序設(shè)計(jì)基本結(jié)構(gòu)

Java中的流程控制語句主要包括以下三類。選擇語句:if-else,switch循環(huán)語句:while,dowhile,for其他流程控制語句:break,continue,return二、if選擇結(jié)構(gòu)

語法格式:

if(條件表達(dá)式){

語句序列;

}執(zhí)行流程:當(dāng)條件表達(dá)式的值為true(真)時(shí)執(zhí)行語句序列,否則執(zhí)行if結(jié)構(gòu)后面的語句。例如: if(a>b){ b=a;

}1.if形式條件表達(dá)式語句序列二、if選擇結(jié)構(gòu)

語法格式:

if(條件表達(dá)式){

語句序列1;

}else{

語句序列2}執(zhí)行流程:當(dāng)條件表達(dá)式的值為true(真)時(shí)執(zhí)行語句序列1,否則執(zhí)行語句序列2。例如: if(a>b){ b=a;

}

else{b=0}2.ifelse形式條件表達(dá)式語句序列1語句序列2二、if選擇結(jié)構(gòu)

【例2-6】求三個(gè)數(shù)中的最大數(shù),鍵盤任意輸入三個(gè)整數(shù),輸出其中的較大者。importjava.util.Scanner;publicclassMaxNumberDemo{publicstaticvoidmain(Stringargs[]){

inta,b,c,max;

Scannerin=newScanner(System.in);

System.out.println("請(qǐng)輸入三個(gè)整數(shù):");

a=in.nextInt();

b=in.nextInt();

c=in.nextInt();

if(a>b){

max=a;

}

else{

max=b;

}

if(max<c){ max=c;

}

System.out.println("最大數(shù):"+max);

}}二、if選擇結(jié)構(gòu)

if語句的嵌套是指一個(gè)if語句的if子句或者else子句的執(zhí)行對(duì)象中又包含了if語句。if語句的嵌套格式多種多樣,沒有固定的格式要求,其中比較典型的一種嵌套結(jié)構(gòu)被稱為if-else-if階梯。其語法格式為:

if(條件表達(dá)式1)

語句序列1;

elseif(條件表達(dá)式2)

語句序列2;

elseif(條件表達(dá)式3)

語句序列3;

……

else

語句序列N;3.if語句的嵌套使用if語句的嵌套時(shí)需要注意:else與if的匹配。如:

if(i==10){

if(j<20)a=b;

if(k>100)c=d;

elsea=c;

}

elsea=d;二、if選擇結(jié)構(gòu)

【例2-7】通過使用if-else-if階梯來編寫程序,確定某個(gè)月分屬于哪個(gè)季節(jié),即:輸入月份,輸出其所在季節(jié)。importjava.util.Scanner;classIfElseDemo{

publicstaticvoidmain(Stringargs[]){

Scannerin=newScanner(System.in);

System.out.println("請(qǐng)輸月份:");

intmonth=in.nextInt();//輸入月份

Stringseason;

if(month==12||month==1||month==2)

season="冬季";

elseif(month==3||month==4||month==5)

season="春季";

elseif(month==6||month==7||month==8)

season="夏季";

elseif(month==9||month==10||month==11)

season="秋季";

else

season="月份輸入錯(cuò)誤!";

System.out.println(month+"月,屬于"+season+"。");

}} 三、switch選擇結(jié)構(gòu)

解決多分支結(jié)構(gòu)的問題時(shí),如果使用嵌套層數(shù)太多的ifelse語句,會(huì)使程序變得復(fù)雜和難于理解,而且容易產(chǎn)生錯(cuò)誤。為此,Java提供了一條專門用于多分支選擇的語句——switch語句,以便實(shí)現(xiàn)從多條分支中選擇一條進(jìn)行執(zhí)行。switch語句的執(zhí)行過程:1)首先計(jì)算表達(dá)式的值。2)將表達(dá)式的值依次與case后面的值進(jìn)行比較,一旦有匹配的值,則執(zhí)行該case子句中的語句,并將此case子句作為入口一直順序執(zhí)行下去,直到遇到break或switch結(jié)束。3)如果沒有一個(gè)case的常量與表達(dá)式的值相匹配,則執(zhí)行default子句,若沒有default子句,則不執(zhí)行任何語句。switch語法格式:switch(表達(dá)式){casevalue1:

語句序列1;

break;casevalue2:

語句序列2;

break;

……casevalueN:

語句序列N

break;

default:

語句序列N+1;}三、switch選擇結(jié)構(gòu)

【例2-7】通過使用if-else-if階梯來編寫程序,確定某個(gè)月分屬于哪個(gè)季節(jié),即:輸入月份,輸出其所在季節(jié)。importjava.util.Scanner;publicclassSwitchDemo{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in); System.out.println("請(qǐng)輸月份:"); intmonth=in.nextInt();//輸入月份 Stringseason; switch(month){

case12:

case1:

case2:

season="冬季";

break;

case3:

case4:

case5:

season="春季";

break;

case6:

case7: case8: season="夏季"; break;case9: case10: case11: season="秋季"; break;default: season="月份輸入有誤!"; } System.out.println(month+"月,屬于"+season+"。"); }

任務(wù)實(shí)施鍵盤輸入學(xué)生成績(jī),輸出對(duì)應(yīng)等級(jí):優(yōu)秀≥90、90<良好≥75,75>中≥60,不及格<60。本任務(wù)屬多分支情況,使用switch實(shí)現(xiàn)比較簡(jiǎn)潔,程序源代碼如下。完成“工單2-2”訓(xùn)練任務(wù)同步訓(xùn)練§2-3班級(jí)成績(jī)統(tǒng)計(jì)Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

為了考查同學(xué)們對(duì)課程內(nèi)容的掌握情況,希望對(duì)班級(jí)成績(jī)按優(yōu)、良、中、不及格四個(gè)等級(jí)分別統(tǒng)計(jì)學(xué)生人數(shù)。若要完成此任務(wù),則需要對(duì)每位同學(xué)的成績(jī)進(jìn)行分析判斷并進(jìn)行統(tǒng)計(jì),程序中需要重復(fù)同樣的操作若干次,這類程序就應(yīng)該使用循環(huán)結(jié)構(gòu)去實(shí)現(xiàn)。教學(xué)內(nèi)容1循環(huán)結(jié)構(gòu)嵌套Java循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)23其他流程控制語句循環(huán)結(jié)構(gòu)應(yīng)用4一、Java循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)循環(huán)語句的作用是重復(fù)執(zhí)行一段程序代碼,直到循環(huán)條件不再成立為止。被重復(fù)執(zhí)行的語句稱為循環(huán)體。Java提供的循環(huán)語句有while語句,do-while語句和for語句三種。一、Java循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)【例2-9】分別用while、dowhile、for三種循環(huán)語句計(jì)算1+2+3+……+100,比較三種循環(huán)語句的使用。classWhileDemo{publicstaticvoidmain(Stringargs[]){inti=1;//初始化循環(huán)變量iints=0;//初始化累加求和變量swhile(i<=100){s=s+i;//累加求和i++;//迭代,變更循環(huán)條件}System.out.println("1+2+3+……+100之和為:"+s);}}

classDoWhileDemo{

publicstaticvoidmain(Stringargs[]){

inti=1;//初始化循環(huán)變量i

ints=0;//初始化累加求和變量s

do{

s=s+i;//累加求和

i++;//迭代,變更循環(huán)條件

}while(i<=100);

System.out.println("1+2+3+……+100之和為:"+s);

}}classForDemo{

publicstaticvoidmain(Stringargs[]){

inti,s;//變量聲明

for(i=1,s=0;i<=100;i++){

s=s+i;//累加求和

}

System.out.println("1+2+3+……+100之和為:"+s);

}}一、Java循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)【例2-10】假設(shè)一張足夠大的紙,厚為0.5毫米。問對(duì)折多少次以后,可以達(dá)到珠穆朗瑪峰的高度?(珠穆朗瑪峰2020年測(cè)試高度:8848.86米,此次測(cè)量采用北斗衛(wèi)星和人工測(cè)量方式,測(cè)量精度達(dá)到毫米級(jí)別)publicclassTimes{

publicstaticvoidmain(String[]args){ intn=0;

//聲明計(jì)數(shù)器變量 doubleh=0.5;//聲明循環(huán)控制變量 for(;

h<=8848.86*1000;

n++,h*=2){

; //循環(huán)體為空 } System.out.println("需要對(duì)折"+n+"次。");

}}

二、循環(huán)嵌套

在一個(gè)循環(huán)體語句中又包含另一個(gè)循環(huán)語句,稱為循環(huán)嵌套。內(nèi)嵌的循環(huán)中還可以再嵌套循環(huán),這就是多層循環(huán)。三種循環(huán)(while、do-while、for)都可以嵌套而且可以相互嵌套。但在循環(huán)的嵌套使用中,一定注意嵌套層次的關(guān)系,防止各層次間出現(xiàn)交叉套迭的情況,以免引起程序的混亂。規(guī)范使用代碼的縮格書寫形式,可清楚地表達(dá)嵌套的層次關(guān)系。二、循環(huán)嵌套【例2-11】【例2-11】打印九九表,形如:1*1=11*2=22*2=41*3=32*3=63*3=9……publicclassJiuJiuBiao{

publicstaticvoidmain(String[]args){

inti,j;

for(i=1;i<=9;i++){

for(j=1;j<=i;j++){

System.out.print(j+"*"+i+"="+i*j+"");

}

System.out.println();

}}}

三、其他流程控制語句

在Java中,break語句可用于switch分支結(jié)構(gòu)以及3種循環(huán)結(jié)構(gòu),用來強(qiáng)制跳出switch語句或終止循環(huán)。在循環(huán)語句中,break語句可直跳出循環(huán)體語句,終止循環(huán)語句的執(zhí)行,繼續(xù)執(zhí)行循環(huán)結(jié)構(gòu)后面的語句。1.break語句【例2-12】利用break語句終止循環(huán)。classBreakLoopDemo1{publicstaticvoidmain(Stringargs[]){for(inti=0;i<100;i++){if(i==10)break; //i為10時(shí)終止循環(huán)System.out.println("i:"+i);}

System.out.println("循環(huán)結(jié)束.");}}三、其他流程控制語句

continue語句只能出現(xiàn)在循環(huán)體語句中,作用是跳過當(dāng)前循環(huán)中continue語句以后的循環(huán)體語句,直接開始下一輪循環(huán)。2.continue語句【例2-13】輸入一組數(shù)據(jù),輸出其中的負(fù)數(shù),輸入0,則結(jié)束循環(huán)。importjava.util.Scanner;classContinueDemo{

publicstaticvoidmain(String[]args){

intdata;

Scannerin=newScanner(System.in);

System.out.print("請(qǐng)輸入一組整數(shù):");

while(true){

data=in.nextInt();

if(data==0)break;

elseif(data>0)continue;

elseSystem.out.println(data);

}}}三、其他流程控制語句

return語句可以使程序流程從當(dāng)前方法中退出,返回到調(diào)用該方法的語句處,繼續(xù)程序的執(zhí)行。return語句有以下兩種格式。return表達(dá)式;//返回一個(gè)值給調(diào)用該方法的語句,返回值的數(shù)據(jù)類型必須與方法聲明中的返回值類型一致。return;

//使程序流程返回到被調(diào)用處,不返回任何值。一般用于方法說明中用void聲明返回類型為空的情況。3.return語句四、循環(huán)結(jié)構(gòu)應(yīng)用

importjava.util.Scanner;publicclassLogin{

publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); Stringpassword=""; intn=0; do{

n++;

if(n>3)break;

System.out.println("請(qǐng)輸入密碼:");

password=input.next(); }while(!password.equals("adm123"));//內(nèi)置密碼:adm123【例2-14】設(shè)計(jì)程序,模擬登錄系統(tǒng)的密碼驗(yàn)證過程,允許用戶最多輸入三次密碼,三次都不正確不允許登錄。

if(n>3){

System.out.println("密碼三次輸入錯(cuò)誤,您無權(quán)登錄系統(tǒng)!");

}

else{

System.out.println("密碼輸入正確,登錄成功!");

}

}}四、循環(huán)結(jié)構(gòu)應(yīng)用

classPrimenumber{

publicstaticvoidmain(Stringargs[]){

System.out.println("**3~100間的所有素?cái)?shù)**");

intn=0;

for(inti=3;i<=100;i++){ //外層循環(huán)

intk=(int)Math.sqrt(i);

intisPrime=1;

for(intj=2;j<=k;j++){ //內(nèi)層循環(huán)

if(i%j==0)isPrime=0;

}

if(isPrime!=0){

System.out.print(""+i);

n++;

//每行打?。保皞€(gè)素?cái)?shù)

if(n%10==0)System.out.println();

}}}}【例2-15】求3~100間的所有素?cái)?shù)。四、循環(huán)結(jié)構(gòu)應(yīng)用

【例2-16】求Fibonacci數(shù)列:1,1,2,3,5,8,......的前20個(gè)數(shù)。該數(shù)列可以用一個(gè)通式表示為:

f1=1(n=1)

f2=1(n=2)

fn=fn-1+fn-2(n>=3)publicclassFibonacci{

publicstaticvoidmain(String[]args){ System.out.println("**Fibonacci數(shù)列的前20個(gè)數(shù)為:**"); longf1=1,f2=1; for(inti=1;i<=10;i++){

System.out.print(f1+""+f2+"");

//每次輸出兩個(gè)數(shù)

if(i%5==0)System.out.println();

//每行輸出10個(gè)數(shù)

f1=f1+f2; f2=f2+f1; }

}}任務(wù)實(shí)施對(duì)全班同學(xué)的成績(jī)進(jìn)行分類統(tǒng)計(jì),編寫程序之前要確定以下三個(gè)要素。1)循環(huán)條件:根據(jù)學(xué)生人數(shù)確定循環(huán)次數(shù)。2)循環(huán)體:對(duì)每位同學(xué)的成績(jī)進(jìn)行分析判斷、并進(jìn)行分類統(tǒng)計(jì)。3)循環(huán)控制:設(shè)置循環(huán)變量,控制循環(huán)次數(shù)。完成“工單2-3”訓(xùn)練任務(wù)同步訓(xùn)練課后作業(yè)P55課后作業(yè),四、2345§2-4班級(jí)學(xué)生成績(jī)分析處理Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

期末考試結(jié)束之后,需要對(duì)學(xué)生成績(jī)進(jìn)行全面的總結(jié)分析,其中包括統(tǒng)計(jì)每一門課程的班級(jí)平均成績(jī)、成績(jī)排名及每位同學(xué)的成績(jī)統(tǒng)計(jì)等。

進(jìn)行這類班級(jí)成績(jī)分析,首先需要將所有學(xué)生的各科成績(jī)進(jìn)行存儲(chǔ),然后才能進(jìn)行統(tǒng)計(jì)分析處理,要存儲(chǔ)這種大批量的數(shù)據(jù)就需要使用一種新的數(shù)據(jù)存儲(chǔ)方式——數(shù)組。教學(xué)內(nèi)容1Java二維數(shù)組的創(chuàng)建及使用Java一維數(shù)組的創(chuàng)建及使用23字符串的使用一、Java一維數(shù)組的創(chuàng)建及使用數(shù)組是有限個(gè)相同類型數(shù)據(jù)的有序集合,每個(gè)數(shù)組有固定的長(zhǎng)度,在內(nèi)存中占一片連續(xù)的存儲(chǔ)空間。數(shù)組中的數(shù)據(jù)稱為數(shù)組元素,每個(gè)數(shù)組元素用數(shù)組名和下標(biāo)來唯一地標(biāo)識(shí),下標(biāo)就是數(shù)組元素在數(shù)組中的位置即序號(hào)。根據(jù)數(shù)組下標(biāo)的個(gè)數(shù),數(shù)組分為一維數(shù)組、二維數(shù)組和多維數(shù)組。1.一維數(shù)組的聲明一維數(shù)組聲明語法格式:

數(shù)據(jù)類型數(shù)組名[];或數(shù)據(jù)類型[]數(shù)組名;其中,數(shù)組元素的類型可以是基本類型,也可以是引用類型。數(shù)組名必須是一個(gè)合法的標(biāo)識(shí)符。例如,要保存一批學(xué)生的成績(jī),可以聲明一個(gè)名為score、元素類型為float的數(shù)組,定義方式為:

floatscore[];或float[]score;一、Java一維數(shù)組的創(chuàng)建及使用2.一維數(shù)組的創(chuàng)建在進(jìn)行了數(shù)組聲明之后,使用new操作符創(chuàng)建數(shù)組,為數(shù)組分配存儲(chǔ)空間后,數(shù)組才真正占用了一片連續(xù)的內(nèi)存單元,數(shù)組的長(zhǎng)度在此時(shí)被確定。創(chuàng)建數(shù)組的語法格式:

數(shù)組名=new數(shù)組類型[數(shù)組長(zhǎng)度];

例如,score=newfloat[10];

//創(chuàng)建含10個(gè)元素的實(shí)型數(shù)組可以將聲明數(shù)組和創(chuàng)建數(shù)組兩個(gè)步驟合在一起,用一條語句來實(shí)現(xiàn),其語法格式為:

數(shù)據(jù)類型數(shù)組名[]=new元素類型[數(shù)組長(zhǎng)度];或

數(shù)據(jù)類型[]數(shù)組名=new元素類型[數(shù)組長(zhǎng)度];例如:floatscore[]=newint[10];//創(chuàng)建數(shù)組數(shù)組中各元素通過下標(biāo)來標(biāo)識(shí),下標(biāo)從0開始,最大下標(biāo)值為數(shù)組長(zhǎng)度減1。對(duì)于score數(shù)組,系統(tǒng)為該數(shù)組的10個(gè)元素分配空間,10個(gè)元素的下標(biāo)分別為:

score[0]、score[1]、score[2],…,score[9]一、Java一維數(shù)組的創(chuàng)建及使用3.數(shù)組初始化語法格式:

數(shù)據(jù)類型

數(shù)組名[]={初值列表};或者

數(shù)據(jù)類型[]

數(shù)組名={初值列表};

此時(shí),系統(tǒng)會(huì)自動(dòng)按所給初值的個(gè)數(shù)計(jì)算出數(shù)組的長(zhǎng)度并分配相應(yīng)的空間,并把初值存入各元素所占用的內(nèi)存單元。例如:floatscore[]={81,62,43,84,85,96,67,78,69,90};int

intArray[]={2,4,6,8};char[]

chrArray={‘A’,’B’,’C’};一、Java一維數(shù)組的創(chuàng)建及使用4.一維數(shù)組元素的訪問對(duì)數(shù)組的訪問只能通過數(shù)組元素進(jìn)行,數(shù)組元素的引用格式為:

數(shù)組名[下標(biāo)]其中,下標(biāo)可以為整型常數(shù)或整型表達(dá)式?!纠?-17】求30個(gè)學(xué)生的平均成績(jī)。importjava.util.Scanner;publicclassAverage{

publicstaticvoidmain(Stringargs[]){floatscore[]=newfloat[30];intx;floatsum=0;

Scannerin=newScanner(System.in);System.out.print("輸入30個(gè)學(xué)生的成績(jī):");//以下輸入30個(gè)學(xué)生的成績(jī)存入數(shù)組score中

for(intk=0;k<30;k++)score[k]=in.nextFloat();//成績(jī)存入數(shù)組

//以下計(jì)算平均成績(jī)for(intk=0;k<30;k++)sum+=score[k];System.out.println("平均成績(jī)?yōu)椋?+sum/30);}}一、Java一維數(shù)組的創(chuàng)建及使用5.利用for增強(qiáng)語句遍歷數(shù)組for增強(qiáng)語句也稱為for-each循環(huán),基本語法格式為:

for(<迭代變量聲明>:<數(shù)組名>){

語句;

}例如對(duì)上例數(shù)組score的訪問,可使用如下語句。

for(floatm:score){

System.out.println(m);

}該循環(huán)輸出score數(shù)組中的所有元素。利用for增強(qiáng)語句改寫【例2-17】一、Java一維數(shù)組的創(chuàng)建及使用6.數(shù)組長(zhǎng)度屬性及常用操作數(shù)組長(zhǎng)度屬性數(shù)組作為對(duì)象,所有的數(shù)組都有一個(gè)屬性length,表示數(shù)組的長(zhǎng)度,使用方法為:

數(shù)組名.length

例如:int[]num=newnum[10];則num.length的值為10。訪問數(shù)組元素時(shí),下標(biāo)取值為0至數(shù)組名.length-1,如果下標(biāo)超出范圍,則運(yùn)行時(shí)將產(chǎn)生“數(shù)組訪問越界異常”。一、Java一維數(shù)組的創(chuàng)建及使用6.數(shù)組長(zhǎng)度屬性及常用操作數(shù)組工具類ArraysJava系統(tǒng)提供了一個(gè)工具類Arrays,該類提供用于數(shù)組操作的各種方法。如對(duì)數(shù)組的排序和查詢等操作,可直接調(diào)用Arrays中的相應(yīng)方法完成。如:

Arrays.sort(數(shù)組名);//實(shí)現(xiàn)對(duì)指定數(shù)組的排序(升序)

Arrays.binarySearch(數(shù)組名,關(guān)鍵字)//在數(shù)組中查詢指定關(guān)鍵字binarySearch()方法采用二分查找法,所以要求數(shù)組元素必須有序排列。如果數(shù)組中包含關(guān)鍵字,則返回一個(gè)正數(shù);否則返回一個(gè)負(fù)數(shù)。

一、Java一維數(shù)組的創(chuàng)建及使用【例2-18】產(chǎn)生20個(gè)100以內(nèi)的隨機(jī)整數(shù),對(duì)其進(jìn)行排序并輸出,查找其中是否包含數(shù)值85。importjava.util.Arrays; //導(dǎo)入數(shù)組工具類Arraysimportjava.util.Random; //導(dǎo)入產(chǎn)生隨機(jī)數(shù)的類RandompublicclassArrayDemo{

publicstaticvoidmain(String[]args){ intnum[]=newint[10]; Randomrandom=newRandom();//創(chuàng)建隨機(jī)數(shù)對(duì)象 for(inti=0;i<num.length;i++){

num[i]=random.nextInt(100);//獲取100以內(nèi)整型隨機(jī)數(shù)

System.out.print(num[i]+"\t"); } Arrays.sort(num); //對(duì)數(shù)組進(jìn)行排序 System.out.println("\n排序之后----------------"); for(inti=0;i<num.length;i++){

System.out.print(num[i]+"\t"); }

if(Arrays.binarySearch(num,85)>0)

//查找關(guān)鍵字85

System.out.println("\n數(shù)組中包含關(guān)鍵字:85");else

System.out.println("\n數(shù)組中不包含關(guān)鍵字:85");

}}一、Java一維數(shù)組的創(chuàng)建及使用【例2-19】有一個(gè)整數(shù)數(shù)組,其中存放著序列1,3,5,7,9,11,13,15,17,19。請(qǐng)將該序列逆序存放并輸出。publicclassBack{

publicstaticvoidmain(Stringargs[]){

inta[]={1,3,5,7,9,11,13,15,17,19};

intt;

System.out.println("數(shù)組的初始狀態(tài)為:");

for(inti=0;i<a.length;i++)

System.out.print(""+a[i]);

System.out.println();

for(inti=0;i<a.length/2;i++){

t=a[i];

a[i]=a[a.length-i-1];

a[a.length-i-1]=t;

}

System.out.println("數(shù)組逆序存放后的狀態(tài)為:");

for(inti=0;i<a.length;i++)

System.out.print(""+a[i]);

}} 二、二維數(shù)組的創(chuàng)建及使用二維數(shù)組常用于表示一張二維表格。Java中,二維數(shù)組可看作由一維數(shù)組組成的數(shù)組,即二維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。二維數(shù)組可以先聲明再創(chuàng)建,也可以在聲明的同時(shí)進(jìn)行創(chuàng)建。聲明二維數(shù)組

語法格式:數(shù)據(jù)類型數(shù)組名[][];或數(shù)據(jù)類型[][]數(shù)組名;例如:inta[][];

floatarray[][];二、二維數(shù)組的創(chuàng)建及使用創(chuàng)建二維數(shù)組1)同時(shí)為二維數(shù)組的行和列分配存儲(chǔ)空間

基本語法格式:數(shù)據(jù)類型[][]數(shù)組名=new數(shù)據(jù)類型[行數(shù)][列數(shù)];例如:int[][]a=newint[3][4];//創(chuàng)建一個(gè)3行4列的整型二維數(shù)組2)先指定二維數(shù)組的行數(shù),再分別為每一行指定列數(shù)例如:inta[][]=newint[3][];

a[0]=newint[4];

a[1]=newint[4];

a[2]=newint[4];二、二維數(shù)組的創(chuàng)建及使用Java中允許二維數(shù)組中每一行的元素個(gè)數(shù)可以不同,如:

intb[][]=newint[3][];b[0]=newint[3];b[1]=newint[2];b[2]=newint[4];通過初始化創(chuàng)建二維數(shù)組例如:intarrayA[][]={{1,2,3},{4,5,6},{7,8,9}};

//創(chuàng)建3行3列的二維數(shù)組此時(shí),系統(tǒng)會(huì)自動(dòng)按初值表中的數(shù)據(jù)個(gè)數(shù)計(jì)算出數(shù)組的長(zhǎng)度并分配相應(yīng)的空間。再如:intarrayB[][]={{1,2,3,4},{5,6},{7,8,9},{10,11}};創(chuàng)建了一個(gè)不規(guī)則的二維級(jí)數(shù),共4行,每行的元素個(gè)數(shù)分別為4、2、3、2。二維數(shù)組中各元素通過兩個(gè)下標(biāo)來區(qū)分,每個(gè)下標(biāo)的最小值為0,最大值為行數(shù)或列數(shù)減1。二、二維數(shù)組的創(chuàng)建及使用二維數(shù)組元素訪問格式:

數(shù)組名[行下標(biāo)][列下標(biāo)]如:arrayA[i][j]表示第i行第j列的元素。二維數(shù)組也具有l(wèi)ength屬性,數(shù)組名.length表示二維數(shù)組的行數(shù),數(shù)組名[行下標(biāo)].length則表示該行的列數(shù)。二、二維數(shù)組的創(chuàng)建及使用【例2-20】二維數(shù)組的定義、初始化及輸出。publicclassMulArray{publicstaticvoidmain(Stringargs[]){intarrayA[][]={{1,2,3},{4,5,6},{7,8,9}};System.out.println(arrayA[0][0]+""+arrayA[0][1]+""+arrayA[0][2]);System.out.println(arrayA[1][0]+""+arrayA[1][1]+""+arrayA[1][2]);System.out.println(arrayA[2][0]+""+arrayA[2][1]+""+arrayA[2][2]);System.out.println();arrayA[0][0]=arrayA[0][1]+arrayA[0][2];arrayA[1][1]=arrayA[1][0]+arrayA[1][2];arrayA[2][2]=arrayA[2][0]+arrayA[2][1];for(inti=0;i<=2;i++){for(intj=0;j<=2;j++) System.out.print(arrayA[i][j]+"");System.out.println();} }} 二、二維數(shù)組的創(chuàng)建及使用【例2-21】二維數(shù)組動(dòng)態(tài)創(chuàng)建示例。publicclassArrayOfArraysDemo{publicstaticvoidmain(String[]args){int[][]aMatrix=newint[4][];for(inti=0;i<aMatrix.length;i++){aMatrix[i]=newint[i+1];//創(chuàng)建子數(shù)組for(intj=0;j<aMatrix[i].length;j++){aMatrix[i][j]=i+j;}}//輸出數(shù)組元素for(inti=0;i<aMatrix.length;i++){for(intj=0;j<aMatrix[i].length;j++){System.out.print(aMatrix[i][j]+"");}System.out.println();}}} 二、二維數(shù)組的創(chuàng)建及使用【例2-22】求一個(gè)3×3矩陣的兩條對(duì)角線上的元素之和。importjava.util.Scanner;publicclassSumBubble{

publicstaticvoidmain(Stringargs[]){

intsum=0;

inta[][]=newint[3][3];

Scannerin=newScanner(System.in);

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

a[i][j]=in.nextInt();

}

}

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

if(((i+j)==2)||(i==j))

sum=sum+a[i][j];}

}

System.out.println("兩對(duì)角線元素之和為:"+sum);

}} 三、字符串的使用Java中對(duì)字符串的處理通常使用兩個(gè)系統(tǒng)類String和StringBuffer,這兩個(gè)類都在java.lang包中。String類創(chuàng)建的字符串是常量,是不可更改的,每次需要改變字符串時(shí)都要?jiǎng)?chuàng)建一個(gè)新的對(duì)象來保存改變后的內(nèi)容。StringBuffer類創(chuàng)建的字符串是變量,其內(nèi)容是可以改變的。所以,String類常用于創(chuàng)建不經(jīng)常對(duì)內(nèi)容進(jìn)行更改的字符串,StringBuffer類常用于需要對(duì)一個(gè)字符串進(jìn)行修改,例如插入,刪除等操作的情況。三、字符串的使用1.String類的使用(1)字符串創(chuàng)建使用字符串常量直接初始化一個(gè)字符串對(duì)象。

如:Stringstr="Thisisateststring.";

Stringstr="This"+"is"+"ateststring.";//“+”連接兩個(gè)字符串使用String類提供的構(gòu)造方法創(chuàng)建字符串對(duì)象。

Sting類提供了多個(gè)不同的構(gòu)造方法,允許使用不同的數(shù)據(jù)源為字符串對(duì)象提供初始值。

String(); //創(chuàng)建空字符串

String(byte[]); //創(chuàng)建字符串,其值由一個(gè)字節(jié)數(shù)組的內(nèi)容設(shè)置

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論