W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(1) 順序結(jié)構(gòu)
(2) 分支結(jié)構(gòu)
(3) 循環(huán)結(jié)構(gòu)
(4) break 與 continue關(guān)鍵字
(5) 數(shù)組
(6) 方法
如果代碼里沒(méi)有流程控制,程序是至上而下一行一行執(zhí)行的
一條語(yǔ)句執(zhí)行完之后繼續(xù)執(zhí)行下一條語(yǔ)句,直到程序的最后
順序結(jié)構(gòu)只能順序執(zhí)行,不能進(jìn)行判斷和選擇,因此需要分支結(jié)構(gòu)
JAVA有兩種分支結(jié)構(gòu):● if 語(yǔ)句 ● switch 語(yǔ)句
(1):if 語(yǔ)句,一個(gè) if 語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句
if語(yǔ)句三種格式:
```
語(yǔ)句格式一:if(條件表達(dá)式){
執(zhí)行語(yǔ)句;
}
語(yǔ)句格式二:if(條件表達(dá)式){
執(zhí)行語(yǔ)句;
}else{
執(zhí)行語(yǔ)句;
}
語(yǔ)句格式三:if(條件表達(dá)式){
執(zhí)行語(yǔ)句;
}else if (條件表達(dá)式){
執(zhí)行語(yǔ)句;
}
……
else
{
執(zhí)行語(yǔ)句;
}
<br> **if 語(yǔ)句的用語(yǔ)法如下: 如果布爾表達(dá)式的值為 true,則執(zhí)行 if 語(yǔ)句中的代碼塊,否則執(zhí)行 if 語(yǔ)句塊后面的代碼** <br> ``` <br>if(布爾表達(dá)式) { <br>//如果布爾表達(dá)式為true將執(zhí)行的語(yǔ)句 <br>} <br> ``` <br> **if語(yǔ)句代碼** <br> ``` <br>/** <br>*if語(yǔ)句代碼 <br>**/ <br>//定義一個(gè)Demo類(lèi) <br>public class Demo { <br>//定義主方法 <br>public static void main(String args[]){ <br>int a = 10; //定義一個(gè)變量 <br>if( a < 100 ){ <br>System.out.print("這是 if 語(yǔ)句"); //輸出語(yǔ)句 <br>} <br>} <br>} <br> ``` <br> <br> **if...else語(yǔ)句:if 語(yǔ)句后面可以跟 else 語(yǔ)句,當(dāng) if 語(yǔ)句的布爾表達(dá)式值為 false 時(shí),else 語(yǔ)句塊會(huì)被執(zhí)行** <br> **if…else 的用法**: <br> ``` <br>if(布爾表達(dá)式){ <br>//如果布爾表達(dá)式的值為true <br>}else{ <br>//如果布爾表達(dá)式的值為false <br>} <br> ``` <br> **if else語(yǔ)句代碼如下:** <br> ``` <br>/** <br>*if else語(yǔ)句代碼 <br>*// <br>//定義一個(gè)Demo2類(lèi) <br>public class Demo2 { <br>//定義一個(gè)主方法 <br>public static void main(String args[]){ <br>int b = 30; //聲明一個(gè)變量并賦值 <br>if( b < 20 ){ <br>System.out.print("這是 if 語(yǔ)句"); <br>}else{ <br>System.out.print("這是 else 語(yǔ)句"); <br>} <br>} <br>} <br> ``` <br> <br> **(2):switch 語(yǔ)句** <br> switch 語(yǔ)句判斷一個(gè)變量與一系列值中某個(gè)值是否相等,每個(gè)值稱(chēng)為一個(gè)分支 <br> case只是用來(lái)為switch選擇一個(gè)執(zhí)行代碼的入口,如果一旦進(jìn)入一個(gè)入口之后,后面的case實(shí)際上已經(jīng)失去了判斷的意義, <br> JAVA在執(zhí)行的時(shí)候就會(huì)把這個(gè)case之后的case相當(dāng)于刪除了,所以就會(huì)一直往下執(zhí)行,直到遇到break <br> 所以讀者可以發(fā)現(xiàn), 每一個(gè)case后面沒(méi)有{}這個(gè)符號(hào)來(lái)表示一個(gè)代碼塊 <br> **switch語(yǔ)句選擇的類(lèi)型只有四種**:byte、short、int 、char (java5版本之前)還支持 enum(jdk5), String(jdk7) <br> case之間與default沒(méi)有順序,先執(zhí)行第一個(gè)case,都沒(méi)有匹配的case值執(zhí)行default。 <br> 結(jié)束switch語(yǔ)句的兩種情況:遇到break,switch語(yǔ)句執(zhí)行結(jié)束 <br> 如果匹配的case或者default沒(méi)有對(duì)應(yīng)的break,那么程序會(huì)從第一次匹配的case語(yǔ)句開(kāi)始繼續(xù)向下執(zhí)行 <br> 運(yùn)行可以執(zhí)行的語(yǔ)句,直到遇到break或者switch結(jié)束為止 <br> <br> **switch語(yǔ)法格式**: <br> ``` <br>switch(表達(dá)式){ <br>case 表達(dá)式可能的結(jié)果值1: <br>執(zhí)行語(yǔ)句; <br>break; <br>case 表達(dá)式可能的結(jié)果值2: <br>執(zhí)行語(yǔ)句; <br>break; <br>... <br>default: <br>執(zhí)行語(yǔ)句; <br>break; <br>}
<br> switch語(yǔ)句代碼如下: <br> ``` <br>/** <br>*switch代碼 <br>**/ <br>//定義一個(gè)Demo3類(lèi) <br>public class Demo3 { <br>//定義一個(gè)主方法 <br>public static void main(String args[]){ <br>char grade = 'C'; <br>//switch語(yǔ)句 <br>switch(grades){ <br>case 'A' : <br>System.out.println("優(yōu)秀"); <br>break; <br>case 'B' : <br>System.out.println("良好"); <br>break; <br>case 'C' : <br>System.out.println("及格"); <br>case 'D' : <br>System.out.println("你還需要努力學(xué)習(xí)"); <br>break; <br>default : <br>System.out.println("未知等級(jí)"); <br>} <br>System.out.println("你的等級(jí)是 " + grade); //輸出語(yǔ)句 <br>} <br>} <br> ```
JAVA中有三種主要的循環(huán)結(jié)構(gòu):● while 循環(huán) ● do…while 循環(huán) ● for 循環(huán)
用于處理需要重復(fù)執(zhí)行的操作,根據(jù)判斷條件的成立與否,決定程序段落的執(zhí)行次數(shù),而這個(gè)程序段落稱(chēng)為循環(huán)體
(1):while 循環(huán),只要布爾表達(dá)式為 true,循環(huán)體會(huì)一直執(zhí)行下去,while是最基本的循環(huán),它的結(jié)構(gòu)為:
while( 布爾表達(dá)式 ) {
//循環(huán)內(nèi)容
}
while循環(huán)代碼如下:
/**
*while循環(huán)
**/
//定義一個(gè)Demo4類(lèi)
public class Demo4 {
//定義一個(gè)主方法
public static void main(String args[]) {c
int c = 5; //定義一個(gè)變量
// while循環(huán)體
while( c < 10 ) {
System.out.print("c的值為:" + c ); //輸出c的值
c++; //計(jì)數(shù)器
System.out.print("\n"); // 輸出換行
}
}
}
(2):do…while 循環(huán):do…while 循環(huán)和 while 循環(huán)相似,不同的是 do…while 循環(huán)至少會(huì)執(zhí)行一次
do…while 循環(huán)結(jié)構(gòu):布爾表達(dá)式在循環(huán)體的后面,所以語(yǔ)句塊在檢測(cè)布爾表達(dá)式之前已經(jīng)執(zhí)行了
如果布爾表達(dá)式的值為 true,則語(yǔ)句塊一直執(zhí)行,直到布爾表達(dá)式的值為 false
do {
//代碼語(yǔ)句
}while(布爾表達(dá)式);
do…while 循環(huán)代碼
/**
*do…while 循環(huán)代碼
**/
//定義一個(gè)Demo5類(lèi)
public class Demo5 {
//定義一個(gè)主方法
public static void main(String args[]){
int d = 10; //定義一個(gè)變量
//do…while 循環(huán)體
do{
System.out.print("d的值為: " + d ); //輸出d的值
d++; //計(jì)數(shù)器
System.out.print("\n");
}while( d < 20 );
}
}
(3).for循環(huán):1, for循環(huán)里面的3個(gè)表達(dá)式運(yùn)行的順序,初始化表達(dá)式只讀一次,判斷循環(huán)條件,為真就執(zhí)行循環(huán)體
然后再執(zhí)行循環(huán)后的操作表達(dá)式,接著繼續(xù)判斷循環(huán)條件,重復(fù)找個(gè)過(guò)程,直到條件不滿(mǎn)足為止。
2, while與for可以互換,區(qū)別在于for為了循環(huán)而定義的變量在for循環(huán)結(jié)束就在內(nèi)存中釋放,而while循環(huán)使用的變量在循環(huán)結(jié)束后還可以繼續(xù)使用。
3, 最簡(jiǎn)單無(wú)限循環(huán)格式:while(true) , for(;;),無(wú)限循環(huán)存在的原因是并不知道循環(huán)多少次,而是根據(jù)某些條件,來(lái)控制循環(huán)
for循環(huán)執(zhí)行的次數(shù)是在執(zhí)行前就確定的,語(yǔ)法格式如下:
for(初始化表達(dá)式(1);循環(huán)條件表達(dá)式(2);循環(huán)后的操作表達(dá)式(3)){
執(zhí)行語(yǔ)句;(4)
}
for循環(huán)執(zhí)行順序:(1) → (2) → (4) → (3) → (2) → (4) → (3)
for循環(huán)代碼
/**
*for循環(huán)代碼
*//
//定義一個(gè)Demo6類(lèi)
public class Demo6 {
//定義一個(gè)主方法
public static void main(String args[]) {
//for循環(huán)體
for(int e = 10; e < 20; e++) {
System.out.print("e的值為 : " + e);//輸出e的值
System.out.print("\n"); //輸出換行
}
}
}
## 4.break 與 continue關(guān)鍵字
break語(yǔ)句;break:終止該層循環(huán)
continue語(yǔ)句;continue:跳過(guò)該層循環(huán)
①:若這兩個(gè)語(yǔ)句離開(kāi)應(yīng)用范圍,存在是沒(méi)有意義的。
②:這個(gè)兩個(gè)語(yǔ)句后面都能有語(yǔ)句,因?yàn)閳?zhí)行不到。
③:continue語(yǔ)句是跳過(guò)本次循環(huán),繼續(xù)下次循環(huán)。
④:標(biāo)簽的出現(xiàn),可以讓這兩個(gè)語(yǔ)句作用于指定的循環(huán)
break 關(guān)鍵字:break 主要用在循環(huán)語(yǔ)句或者 switch 語(yǔ)句中,用來(lái)跳出整個(gè)語(yǔ)句塊
break 跳出最里層的循環(huán),并且繼續(xù)執(zhí)行該循環(huán)下面的語(yǔ)句
break 的用法很簡(jiǎn)單,就是循環(huán)結(jié)構(gòu)中的一條語(yǔ)句:break;
continue 關(guān)鍵字:continue 適用于任何循環(huán)控制結(jié)構(gòu)中。作用是讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代
在 for 循環(huán)中,continue 語(yǔ)句使程序立即跳轉(zhuǎn)到更新語(yǔ)句
在 while 或者 do…while 循環(huán)中,程序立即跳轉(zhuǎn)到布爾表達(dá)式的判斷語(yǔ)句
continue 就是循環(huán)體中一條簡(jiǎn)單的語(yǔ)句:continue;
筆者將講解JAVA數(shù)組的聲明、創(chuàng)建和初始化,并給出其對(duì)應(yīng)的代碼
數(shù)組概念:一組能夠儲(chǔ)存相同數(shù)據(jù)類(lèi)型值得變量的集合
數(shù)組的好處:數(shù)組里的每個(gè)元素都有編號(hào),編號(hào)從0開(kāi)始;依次遞增,方便操作這些元素
使用Java數(shù)組:必須先聲明數(shù)組,再給該數(shù)組分配內(nèi)存, JAVA語(yǔ)言中提供數(shù)組是用來(lái)存儲(chǔ)固定大小的同類(lèi)型元素
聲明一維數(shù)組
一維數(shù)組:可以理解為一列多行、類(lèi)型相同的數(shù)據(jù),其中每個(gè)數(shù)據(jù)被稱(chēng)為數(shù)組元素
一維數(shù)組的聲明方式:
1.int x[];(不推薦使用)
2.int [] x = new int[3];
3.int x = new int[]{3,5.7};
4.int[] x; (推薦使用)
5.int[] x={3,5,7};
6.int a[5]; 非法數(shù)組,java語(yǔ)言聲明數(shù)組的時(shí)候不能指定其長(zhǎng)度(元素的個(gè)數(shù))
一維數(shù)組的初始化:
JAVA中的數(shù)組必先初始化才可以使用,所謂初始化就是為數(shù)組的數(shù)組元素分配內(nèi)存,并為每個(gè)數(shù)組元素賦值
數(shù)組初始化的兩種方式:
1.靜態(tài)初始化:初始化時(shí)由我們自己指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定需要的數(shù)組長(zhǎng)度;
格式:數(shù)組名 = new 數(shù)組類(lèi)型[]{元素1,元素2,元素3...元素n}; 簡(jiǎn)化語(yǔ)法:數(shù)組名 = {元素1,元素2,元素3...元素n};
2.動(dòng)態(tài)初始化:初始化時(shí)由我們指定數(shù)組的長(zhǎng)度,由系統(tǒng)為數(shù)組元素分配初始值;
格式:數(shù)組名 = new 數(shù)組類(lèi)型[數(shù)組長(zhǎng)度];
聲明二維數(shù)組:
二維數(shù)組:(其實(shí)是一個(gè)一維數(shù)組,它的每一個(gè)元素又是一個(gè)一維數(shù)組),可以看做是一張表格
在數(shù)組中再存放數(shù)組,外層數(shù)組看做是行,內(nèi)層數(shù)組看做列;動(dòng)態(tài)初始化,靜態(tài)初始化
初始化二維數(shù)組聲明方式:
//動(dòng)態(tài)初始化,定義了一個(gè)二維數(shù)組,其中有3個(gè)一維數(shù)組,每一個(gè)一維數(shù)組中有2個(gè)元素
int[][] a = new int[3][2];
//靜態(tài)初始化
int[][] a = new int[][]{{1,2},{3,4},{5,6}};
int[][] a = {{1,2},{3,4},{5,6}};
使用 二維數(shù)組:
int[] [] arr = {{3,1,5},{2,6},{8}};
元素值5的表示方式為:arr[0][2] = 5;
第二個(gè)一維數(shù)組的長(zhǎng)度表示方式:int len = arr[1].length;
對(duì)二維數(shù)組的遍歷使用for的嵌套循環(huán)。
對(duì)于其他多維數(shù)組,幾維就用幾層for嵌套,但通常情況數(shù)組最多用到三維,因?yàn)樾室呀?jīng)大大降低了
使用數(shù)組常見(jiàn)操作:
JAVA語(yǔ)言的數(shù)組索引是從0開(kāi)始的,也就是說(shuō)數(shù)組里的第一個(gè)元素的索引是0,第二個(gè)元素的索引是1
1.給數(shù)組元素賦值
2.數(shù)組名[索引] = 數(shù)組類(lèi)型的值 ;
3.訪(fǎng)問(wèn)數(shù)組元素
4.數(shù)組類(lèi)型 變量 = 數(shù)組名[索引];
5.得到數(shù)組的長(zhǎng)度
6.int len = 數(shù)組名.length; //length是數(shù)組的屬性
7.遍歷數(shù)組
數(shù)組操作常見(jiàn)問(wèn)題
(ArrayIndexOutOfBoundsException)表示數(shù)組腳標(biāo)越界異常
(NullPointerException)表示空引用異常
筆者將講解:方法含義和定義格式,方法重載
什么是方法?一段可重復(fù)使用的代碼段;程序中完成獨(dú)立功能的一段代碼的集合
方法的優(yōu)點(diǎn) :● 1. 使程序變得更簡(jiǎn)短而清晰 ● 2. 有利于程序維護(hù)
● 3. 可以提高程序開(kāi)發(fā)的效率 ● 4. 提高了代碼的重用性
JAVA中定義方法的格式為:
[修飾符] 返回值類(lèi)型 方法名([參數(shù)類(lèi)型 形式參數(shù)1,參數(shù)類(lèi)型 形式參數(shù)2,……]){
執(zhí)行語(yǔ)句; [return 返回值;]
}
參數(shù)列表(參數(shù)的類(lèi)型 ,參數(shù)的個(gè)數(shù),參數(shù)的順序)
方法內(nèi)容介紹:
形式參數(shù):在方法被調(diào)用時(shí)用于接收外界輸入的數(shù)據(jù)
實(shí)參:調(diào)用方法時(shí)實(shí)際傳給方法的數(shù)據(jù)
返回值:方法在執(zhí)行完畢后返還給調(diào)用它的環(huán)境的數(shù)據(jù)
返回值類(lèi)型:事先約定的返回值的數(shù)據(jù)類(lèi)型,如無(wú)返回值,必須給出返回類(lèi)型 void
方法簽名:方法名 和 方法的參數(shù)列表(能區(qū)別方法)
java語(yǔ)言中調(diào)用方法:對(duì)象名.方法名(實(shí)參列表)
實(shí)參的數(shù)目、數(shù)據(jù)類(lèi)型和次序必須和所調(diào)用方法聲明的形參列表匹配
return 語(yǔ)句終止方法的運(yùn)行并指定要返回的數(shù)據(jù)
方法的重載(Overload)
什么是方法的重載?:
在同一個(gè)類(lèi)中,允許存在一個(gè)以上的同名方法,只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類(lèi)型或參數(shù)順序不同即可
方法重載的特點(diǎn):與返回值類(lèi)型無(wú)關(guān),只看參數(shù)列表
記住方法重載方式的小技巧:兩同,一不同
同一個(gè)類(lèi)中方法名相同;參數(shù)列表不同:(參數(shù)個(gè)數(shù),參數(shù)的類(lèi)型,參數(shù)順序)
編程的命名規(guī)則:
1.必須以字母、'_'或'$'開(kāi)頭
2.可以包括數(shù)字,但不能以它開(kāi)頭
3.方法名不能使用關(guān)鍵字和保留字
4.單詞的首字母大寫(xiě),采用駝峰式;由有實(shí)際意義的名詞或名詞短語(yǔ)構(gòu)成
5.方法名規(guī)范:第一個(gè)單詞的首字母小寫(xiě),采用駝峰式
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: