java基礎--------java語法基礎之語句

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------

java語句中的順序結構,選擇結構以及循環結構,三種結構的互相嵌套能夠窮盡一切算法的事實,我在這裏就不多贅述。下面我們直接正題:

第一:順序結構

順序結構是最容易的。就是按照從上到下的順序依次實現。

<span style="font-size:14px;">int a=1;
int b=3;
int c=a+b;
System.out.println(c);</span>


第二:選擇結構

if語句、swithc語句

if語句有三種結構:在瞭解if語句的三種結構之前,我們需要了解if結構的構成。if是關鍵字,if後面的小括號裏的內容,是if的判斷表達式。如果括號內的判斷表達式結果爲true,就會執行緊緊接着的花括號裏的內容。如果判斷表達式的結果爲false,就不執行花括號的內容。當然後面的花括號裏如果只有一條語句的話,是可以省略的。如果有多條語句就不能省略。

第一種格式:if(){…………}這種情況的if只做一次判斷,然後執行花括號的內容。


<span style="font-size:14px;">int a=2;
if(a==2){
System.out.println("我愛黑馬");</span>

第二種格式:if(){…………}else{…………}。這一種格式相對第一種來說,多了一個else關鍵字。else在英語中是其餘的意思。如果程序要執行else關鍵字後面的語句,就要滿足if條件爲false。因爲只有if條件爲false,按照順序結構的流程,程序才能接下來執行else中的。else有一個潛在的隱含條件,就是否定其他的if條件。


int a=50;
if(a>20){
System.out.println(a);
}
else {
System.out.println(a+1);
}

第三種格式:f(){…………}else if(){…………}…………else{…………}第三種表達式可能被認爲是最難的,因爲這裏的判斷條件更多。而且第三種寫法會有很多變體,需要考慮。else同樣也是對前面多有條件的否定。比如

int a=20;
if(a>10){
System.out.println("我愛黑馬");
}
if(a<10){
System.out.println("我愛程序猿");
}
else{
System.out.println("我就是愛黑馬");
}



注意:這道題,就很有迷惑性,許多同學會想,這道題的輸出只會有”我愛黑馬“的四個字,因爲第二個if判斷的是(a<10);而else是對前面所有內容的否定,因此else的實際條件就是既不大於10,也不小於10,就是隻有等於10的時候,纔會輸出”我就是愛黑馬".但是真實的輸出卻是:

我愛黑馬
我就是愛黑馬
第一個if判斷我們就不說了,因爲是一定會打印的。而第二個輸出語句,是因爲else實際上否定的是其上面的一個if的判斷條件(a<10).也就是說else的真實判斷條件爲(a>=10)。所以會輸出這個結果。如果只想讓其輸出第一條語句,就可以再第二個if的前面加上else。也就是原代碼改寫爲:

int a=20;
if(a>10){
System.out.println("我愛黑馬");
}
else if(a<10){
System.out.println("我愛程序猿");
}
else{
System.out.println("我就是愛黑馬");
}

switch語句
格式:
switch(表達式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}

格式解釋說明:
switch:說明這是switch語句。
表達式:可以是byte,short,int,char
JDK5以後可以是枚舉
JDK7以後可以是字符串
case:後面的值就是要和表達式進行比較的值
break:表示程序到這裏中斷,跳出switch語句
default:如果所有的情況都不匹配,就執行這裏,相當於if語句中的else
int x = 2,y=3;

switch(x)
{
	default:
		y++;
	case 3:
		y++;
		break;
	case 4:
		y++;
}

System.out.println("y="+y);
輸出結果爲:y=5;因爲case都不滿足,所以就走了default,但是default後面沒有break;也就是沒有結束,因此y++繼續執行,直到遇到第一個break爲止。

注意事項:

A: case後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的
B: default可以省略,但是不建議,因爲它的作用是對不正確的情況給出提示。
特殊情況
case就可以把值固定。
C: break可以可以省略,但是結果可能不是我們想要的。
會出現一個現象:case穿透。
D: default可以在任意位置。但是建議在最後。
E: switch語句的結束條件
a: 遇到break就結束了
b: 執行到末尾就結束了

if語句和switch語句各自的場景
A:if
針對boolean類型的判斷
針對一個範圍的判斷
針對幾個常量的判斷
B:switch
針對幾個常量的判斷


第三:循環結構

就是當滿足某個條件的情況下,能夠在該循環裏往復運行。
循環結構有三種,常見的兩種,一種是for循環,一種是while循環。

第一種:for(A;B;C){…………}。A爲條件的初始化值,B爲判斷條件,當A滿足B時,就會執行花括號裏的內容。當花括號裏的內容結束時,再執行C。C執行完後,如果條件依然滿足B,將會繼續執行花括號裏的內容。這裏介紹一個for循環當中的死循環

for(;;){
System.out.println("我愛死黑色的那匹馬了");
}

for循環用途很多,比如當需要計算1到100之和的時候,就可以藉助for循環。for循環最大的用處就是能夠解決數組的遍歷問題。這樣能夠讓我們輕鬆獲取需要的每個元素,並對其進行操作。對數組的遍歷,當然還有其他方法,這裏並不贅述。

第二種:while循環。while循環很簡單while(){…………}。如果while後面的括號內的條件爲true,就會執行方法體內容。這裏也介紹一個死循環。

while(true){
<span style="white-space:pre">	</span>System.out.println(我愛黑馬死心塌地");
}
有些同學在碰到死循環時,不知該如何結束程序,當然直接關閉控制檯是一種,另一種就是ctrl+c,也可以讓運行終止。while死循環也是比較常見的,因爲在我們不知道需要循環幾次的情況下,用for就比較麻煩,但是while就看起來很方便,只要不停的循環,等到需要我們想要的結果出現時,讓那個結果做一個判斷,如果滿足,通過break關鍵字的使用,就可以輕易退出當前的while循環。

最後補充一下,用while與用for的場景。for循環一般用於知道要循環多少次,而while則是不知道要循環多少次。

/*
	while循環和for循環的區別?
		使用區別:如果你想在循環結束後,繼續使用控制條件的那個變量,用while循環,否則用for循環。不知道用for循環。
		          因爲變量及早的從內存中消失,可以提高內存的使用效率。
				  
		其實還有一種場景的理解:
			如果是一個範圍的,用for循環非常明確。
			如果是不明確要做多少次,用while循環較爲合適。
				
*/
class WhileDemo {
	public static void main(String[] args) {
		//for循環實現
		for(int x=0; x<10; x++) {
			System.out.println("學習Java技術哪家強,中國北京找黑馬");
		}
		//這裏不能在繼續訪問了
		//System.out.println(x);
		
		//while循環實現
		int y = 0;
		while(y<10) {
			System.out.println("學習Java技術哪家強,中國北京找黑馬");
			y++;
		}
		//這裏是可以繼續訪問的
		System.out.println(y);
	}
} 

上面這個例子,就將while與for循環之間的特徵表現出來了。

第三種循環 :do {循環體語句;}while(判斷條件語句);

擴展格式:初始化語句;do {循環體語句;控制條件語句;}while(判斷條件語句);

注意:
三種循環的區別:第一:do...while循環至少執行一次循環體,第二:for和while必須先判斷條件是否是true,然後後才能決定是否執行循環體。

第四:控制跳轉語句
break:用於switch語句及循環中。離開這些場景就無意義了。break跳出循環,是跳出單層循環。如果要跳多層循環,需要配合標籤語句。

continue:用於循環中。表示此次循環到此爲止,進行下一次循環。

return:用於結束方法,返回方法的結果。也可以用於控制循環。

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章