【JAVA零基礎入門系列】(已完結)導航目錄html
什麼是控制流程?簡單來講就是控制程序運行邏輯的,由於程序通常而言不會直接一步運行到底,而是須要加上一些判斷,一些循環等等。舉個栗子,就比如你準備出門買個蘋果,把這個過程當成程序的話,可能須要先判斷一下外面是否下雨,下雨的話就得帶傘,不然就直接出門,同時,外面可能有不少家水果店,那去哪家買呢?這裏把價格放在第一要素,因此你會一家一家跑,直到找到最便宜的那家爲止。數組
其實,上述買蘋果的過程,已經用了兩種最經常使用的控制流程:條件和循環。畫個流程圖就像這樣:post
經過這個圖,你們應該能很清楚的瞭解整個決策過程。其實在程序中也是這樣運行的,下面再來詳細的介紹一下這幾個流程控制語句。spa
一、條件語句ifcode
條件語句用於判斷,就像上面的判斷是否下雨同樣,轉換成代碼就是:htm
if (isRaining == true){ //take a umbrella } //go out
跟if一塊兒使用的是else以及else if,用做分支,好比說,分數在90-100分是優秀,80-90分是滿意,60-80分是及格,60分如下是不及格,那麼轉換成代碼以下:對象
if(mark >90 && mark <= 100){ //優秀 }else if(mark >80){ //滿意 }else if(mark >60){ //及格 }else{ //不及格 }
上述代碼中,使用了if跟else if 以及else的組合。若是mark是70分,則會先在if中判斷第一個條件,由於不知足括號內條件,不成立,則流程進入else if,判斷第二個條件是否知足,發現第二個條件也不知足,所以進入第三個條件,發現第三個條件知足,所以會執行及格這一部分的代碼。blog
2.循環語句繼承
Java的循環語句主要有這麼幾個:while,do while,for開發
while循環很簡單,先判斷後面的條件是否知足,若是知足則執行後續的代碼,一直循環執行,直到條件不成立爲止。舉個栗子,總分一百分,錯一個題扣十分,低於六十分則斷定爲失敗。
while(循環條件){ 循環體; }
例如:
int mark = 100; while(mark>60){ mark -= 10; System.out.println(mark); }
這裏的"mark-=10"是"mark = mark - 10"的簡寫形式,這段代碼會依次輸出90,80,70,60,由於60>60不成立,因此循環結束。
固然,循環中也能夠用break跟continue來控制,break直接跳出當前循環,執行循環部分後面的代碼,而continue則是直接跳到本輪循環的末尾。舉個栗子:
int accout=0; while(true){ accout++; if(accout==5){ break; } if(accout==2){ continue; }
System.out.println("accout:"+accout);
}
這裏會依次輸出1,3,4,由於account=2時,執行continue會跳過以後的代碼,直接跳到下一次循環,而account=5的時候,執行break,跳出循環。這裏的while用邏輯值true來控制也是比較常見的用法。
而do while跟while的區別在於,do while是先執行循環體,再判斷條件是否成立,就是說,不論如何,循環體至少會被執行一次。兩種循環適用的場合不同。舉個栗子。do-while 語句的語法格式爲:
do{ 循環體; }while(循環條件);
int i=0; do { System.out.println("我必定會執行一次的"); i++; }while(i<5);
這裏會輸出五次「我必定會執行一次的」。
再介紹一下最經常使用的循環,for循環,for 語句的基本結構以下所示:
for(初始化表達式;判斷表達式;遞增(遞減)表達式){ 執行語句; //一段代碼 }
初始化表達式:初始化表達式的意義,在於定義循環以前變量的值是多少,若是沒有這一項,就不知道該從哪一個值開始循環。
判斷表達式:判斷表達式的做用在於規定循環的終點。若是沒有判斷表達式,那麼此循環就成了死循環。
遞增(遞減)表達式:這一項規定每執行一次程序,變量以多少增量或減量進行變化
for(int i=0;i<5;i++){ System.out.println("i:"+i); }
初始化也能夠放在循環以前:
int j=0; for(;j<=6;j=j+2){ System.out.println("j:"+j); }
若是要用for執行死循環的話:
for(;;){ System.out.println("yes"); }
若是既要執行死循環又要用參數進行控制的話:
int n=0; for(;;n=n+10){ System.out.println("n:"+n); }
for循環還有一個很經常使用的地方就是遍歷數組,所謂遍歷,就是一個一個訪問。
String[] strNum={"張三","李四","王五"}; for(String str:strNum){ System.out.println("name:"+str); }
關於數組的知識會在以後作講解,這裏不須要深究。
若是想要利用for實現多層循環的,能夠這麼寫:
for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ System.out.print(j+" "); } System.out.println("i:"+i); }
具體的代碼效果,你們能夠放計算機裏跑一跑,才能弄明白究竟是怎麼回事。
Scanner in = new Scanner(System.in); System.out.print("Select a mark(A,B,C,D)"); char mark = in.next().charAt(0); switch(mark){ case 'A': System.out.println("Wonderful!");
break; case 'B': System.out.println("Great!");
break;
case 'C': System.out.println("Good!");
break;
case 'D': System.out.println("Not Bad!");
break;
default: System.out.println("Error Input!");
break;
}
這裏先讀取你輸入的字母,而後switch語句會將它與case裏的條件一一對比,直到找到相符的項,而後執行後面的代碼.。若是你輸入的是ABCD以外的字母或是其餘內容,因爲沒有項與其匹配,則會執行default部分的代碼,輸出」Error Input「。這裏的每一句case後面都跟了一句break,若是不加break,則會順序執行,直到遇到break或者所有執行完畢。