第4篇-JAVA基礎(chǔ)

2023-02-01 11:39 更新
  • 每篇一句 :世界上本沒(méi)有完美,但是我們從未放棄追求完美
  • 初學(xué)心得 : 樂(lè)于揮霍的時(shí)間,都不能算作浪費(fèi)
  • (筆者:JEEP/711)[JAVA筆記 | 時(shí)間:2017-04-01| JAVA基礎(chǔ) Ⅳ]

程序運(yùn)行流程

(1) 順序結(jié)構(gòu)
(2) 分支結(jié)構(gòu)
(3) 循環(huán)結(jié)構(gòu)
(4) break 與 continue關(guān)鍵字
(5) 數(shù)組
(6) 方法

1.順序結(jié)構(gòu)

如果代碼里沒(méi)有流程控制,程序是至上而下一行一行執(zhí)行的
一條語(yǔ)句執(zhí)行完之后繼續(xù)執(zhí)行下一條語(yǔ)句,直到程序的最后

2.分支結(jié)構(gòu)

順序結(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> ```

3.循環(huán)結(jié)構(gòu)

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;

5.數(shù)組

筆者將講解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)表示空引用異常

6.方法

筆者將講解:方法含義和定義格式,方法重載
什么是方法?一段可重復(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ě),采用駝峰式

初學(xué)基礎(chǔ)Ⅲ難點(diǎn): ★★★★★

希望每一篇文章都能夠?qū)ψx者們提供幫助與提升,這乃是每一位筆者的初衷

感謝您的閱讀 歡迎您的留言與建議

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)