【JAVA零基礎入門系列】Day8 Java的控制流程

  【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(初始化表達式;判斷表達式;遞增(遞減)表達式){
    執行語句;   //一段代碼
}

  初始化表達式:初始化表達式的意義,在於定義循環以前變量的值是多少,若是沒有這一項,就不知道該從哪一個值開始循環。

  判斷表達式:判斷表達式的做用在於規定循環的終點。若是沒有判斷表達式,那麼此循環就成了死循環。

  遞增(遞減)表達式:這一項規定每執行一次程序,變量以多少增量或減量進行變化  

  結構清楚了,如今就舉一個最基礎的例子來介紹一下:(這個例子是循環輸出0到5的數字。)
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);  
}  

  具體的代碼效果,你們能夠放計算機裏跑一跑,才能弄明白究竟是怎麼回事。

  三種循環到此就介紹完了,如今給你們說一下三種例子的具體使用場景:
  1.for通常是在循環個數已知的狀況下使用的
  2.while通常是在循環個數未知,且循環受到嚴格控制的狀況下使用的。
  3.do-while通常也是在循環個數未知,可是它和while最大的不一樣點在於,無論循環的條件是什麼,do-while都會至少執行一次。
  
  3.多重選擇:switch語句
  這裏還介紹一種控制語句,叫作switch,主要用於處理多個選項,好比說,根據ABCD四個等級給出四個評語,若是用if-else語句會顯得有些笨拙,尤爲當須要判斷的選項不少時,會更加明顯。
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或者所有執行完畢。

至此,本篇內容結束,歡迎你們繼續關注。
相關文章
相關標籤/搜索