------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流!
一、語句
Java語法結構中有順序結構、判斷結構、選擇結構、循環結構。
1.判斷結構:
判斷結構中有三種常用的格式,如下:
(1)if(條件表達式){執行語句}
當小括號內的條件表達式的結果爲true時,執行大括號內的執行語句。例如:
int x=2;
if(x>1)
{
System.out.println("hello");
}
如果大括號內要執行的只有一行語句,可以省略大括號。
(2)if(條件表達式){執行語句}
else{執行語句}。當if的條件表達式爲true時,執行if的語句,不再執行else的語句;當小括號內的結果爲false時,不執行if 下的語句,執行else下的語句。例如:
int x=2;
if(x<1)
System.out.println("hello");
else
System.out.println("byebye");
執行結果爲在控制檯打印“byebye”。注意有時這種格式也可以用三元運算符實現,但使用三元運算符時必須有一個返回的結果,像上面的代碼就無 法用三元運算符實現,具有侷限性。但有時可以實現代碼的簡化。
(3)if(條件表達式){執行語句}
else if(條件表達式){執行語句}
.....................(此處可以定義多條else if語句 )
else{執行語句}
當if中的條件表達式爲true,執行if的語句,不再執行下面的else if語句和else語句;當if的條件表達式爲false,在else if 中從上向下尋找爲true的表 達式,找到後執行其下的執行語句,不再判斷和執行下面的else if語句和else語句;當if語句和else if語句中都沒有爲true條件表達式時,執行else下的語 句。例如:
int x=4;
if(x<0)
System.out.println("haha");
else if(x>2)
System.out.println("duangduang");
else if(x>3)
System.out.println("gogo");
else
System.out.println("byebye");
執行結果爲在控制檯上打印“duang”。
注意:有時在操作時,會同時定義上面的兩、三種格式,例如:
int x=4;
if(x<0)
System.out.println("haha");
if(x>1)
System.out.println("hehe");
if(x>2)
System.out.println("duangduang");
else if(x>3)
System.out.println("gogo");
else
System.out.println("byebye");
執行結果爲在控制檯先打印出“hehe”,再打印出“duangduang”。因爲每出現一個if(條件表達式)就代表一個語句,代碼中一共有 三條語句,會自上向下執行三條語句中符合執行條件的執行語句。
2.選擇結構
選擇結構主要是switch語句。
格式:
switch(表達式)
{
case 取值 1:
執行語句;
break;
case 取值 2:
執行語句;
break;
..........................
default:
執行語句;
break; //最後一行的break可以不寫。
}
用法舉例:
<pre name="code" class="java">/**
需求:根據用於指定月份,打印該月份所屬的季節。
3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
*/
class SwitchDemo
{
public static void main(String[] args)
{
int x = 8;
switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"春季");
break;
case 6:
case 7:
case 8:
System.out.println(x+"夏季");
break;
case 9:
case 10:
case 11:
System.out.println(x+"秋季");
break;
case 12:
case 1:
case 2:
System.out.println(x+"冬季");
break;
default:
System.out.println("輸入的值有誤");
}
}
}
執行結果爲在控制檯打印出“8夏季”。
switch語句的特點:
1.switch語句選擇的類型只有4種:byte,short,int,char。
2.case之間與default沒有順序,先執行第一個case,沒有匹配的case執行default。
3.結束switch語句的兩種情況:遇到break;執行到switch語句結束。
4.如果匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行可以運行的語句,直到遇到break或者switch語句結束。
使用if或者switch語句的情況:
1.如果判斷的具體數值不多,而且符合四種類型,建議使用switch語句,效率稍高。
2.其他情況:如對區間判斷,對結果爲Boolean類型的判斷,使用if語句,if語句的使用範圍更廣。
3.循環結構
當對一條或多條語句要執行很多次時,就需要定義循環結構。循環結構主要爲while語句,do while語句,for語句。
while語句格式: do while語句格式: while(條件表達式) do { {
執行語句; 執行語句; } }while(條件表達式) while和do while語句的區別:
while:先判斷條件,只有條件滿足才執行循環體。
do while:先執行循環體一次,在判斷條件,如果條件,再繼續執行循環體。
do while中無論條件是否滿足,循環至少執行一次。
for語句格式:
for(初始化表達式;循環條件表達式(必須是boolean型結果);循環後的操作表達式)
{
執行語句;
}
例如:
for(int x = 0; x<3 ; x++)
{
System.out.println("x="+x);
}
執行結果爲在控制檯上分行打印出x=0,x=1,x=2.
for循環的內部執行順序:先讀一次並且只讀一次初始化表達式,判斷循環條件爲真,就執行循環體,然後再執行循環後的操作表達式,接着判斷循環條件,重複 整個過程,知道條件不滿足爲止。
while和for對比:while和for可以互換。區別在於for爲了循環而定義的變量在for循環結束後,就在內存中釋放了,而while循環使用的變量在循環結束後海可以繼 續使用。在定義循環語句時一定要明確哪些語句需要參與循環,哪些不需要參與循環。在需要定義循環增量時,使用for循環更合適,會節省內存空間。
在循環結構中常用的兩種語句:累加和計數器。
累加思想:即求和,通過變量記錄住循環操作的結果。通過循環的形式,進行累加操作。
例如:
/*
1,獲取1~10的和,並打印。
*/
class ForDemo
{
public static void main(String[] args)
{
//定義變量用於存儲不斷變化的和。
int sum = 0;
//定義變量,記錄住不斷變化的被加的數。
int x = 1;
//定義循環,重複加法的過程。
while(x<=10)
{
sum = sum + x;
x++;
}
System.out.println("sum="+sum);
}
}
執行結果爲在控制檯上打印出“sum=55”;計數器思想:通過變量記錄住數據的變化狀態,也需要通過循環完成。
例如:
/*
需求:獲得1~100之間6的倍數的個數。並打印。
*/
class ForDemo2
{
public static void main(String[] args)
{
//定義變量,記錄滿足條件的數的出現次數
int count = 0;
//在指定範圍內進行循環
for(int x=1; x<=100; x++)
{
//判斷是否滿足條件,滿足條件,計數的變量自增。
if(x%6==0)
count++;
}
System.out.println("count="+count);
}
}
執行結果爲在控制檯上打印出“count=16”;循環嵌套:就是循環中還有循環。
例如:
/**
需求:打印九九乘法表.
*/
class ForForDemo
{
public static void main(String[] args)
{
//限定行數
for (int x=1; x<=9 ; x++)
{
//限定列數
for (int y=1; y<=x; y++)
{
//打印每次循環的兩個數及它們的積
System.out.print(y+"*"+x+"="+y*x+"\t");
}
//換行
System.out.println();
}
}
}
執行結果爲在控制檯打印出九九乘法表。
break與continue:
break:結束、跳出,用於選擇結構或循環結構。
continue:結束本次循環,繼續進行下一次循環。用於循環結構。
break和continue使用時應注意:
1.這兩個語句離開應用範圍,存在都沒有意義。
2.這兩個語句單獨存在,下面不可以再有語句,因爲執行不到。
3.標號的出現可以讓這兩個語句應用於指定範圍(標號只能用於循環結構);
二、函數
定義在類中的具有特定功能的一段獨立程序,也稱爲方法。
格式:
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,…)
{
執行語句;
return返回值;//返回值類型爲void時,不寫return語句。
}
其中:
返回值類型:函數運行後的結果的數據類型。
參數類型:是形式參數的數據類型。
形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。
實際參數:傳遞給形式參數的具體數值。
return:用於結束函數。
返回值:該值會返回給調用者。
函數的特點:
1.定義函數可以將功能代碼進行封裝,便於對該功能進行復用,提高了代碼的複用性
2. 函數只有被調用纔會被執行,函數中只能調用函數,不可以在函數內部定義函數。主函數是靜態的,只能調用靜態函數。
3. 對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示。此
定義函數:
1.明確要定義的功能的結果:即返回值類型。
2.明確在定義該功能的過程中,是否需要未知內容參與運算:即參數列表。
重載:
重載是函數的特性,在同一個類中,允許存在一個以上的同名函數,前提是它們的參數列表的個數或參數類型不同即可。重載只看參數列表,與返 回值類型無關。重載的優化了程序設計,提高了閱讀性。
舉例:判斷下面哪些函數與void show(int a,char b,double c){}可以實現重載。
a.void show(int x,char y,double z){}//沒有,因爲和原函數一樣。
b.int show(int a,double c,char b){}//重載,因爲參數類型不同。注意:重載和返回值類型沒關係。
c.void show(int a,double c,char b){}//重載,因爲參數類型不同。注意:重載和返回值類型沒關係。
d.boolean show(int c,char b){}//重載,因爲參數個數不同。
e.void show(double c){}//重載,因爲參數個數不同。
f.double show(int x,char y,double z){}//沒有,這個函數不可以和給定函數同時存在與一個類中。
重載的使用:
當定義的功能相同,但參與運算的未知內容不同。那麼,這時就定義一個函數名稱以表示起功能,方便閱讀,而通過參數列表的不同來區分多個同名 函數。
返回兩個整數的最大值 int getMax(int x,int y);
返回兩個小數的最大值 double getMax(double a,double b);
返回三個整數的最大值 int getMax(int x,int y,int z);
-------------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------