天天看點

JAVA中的流程控制語句

流程控制語句:

  在一個程式執行的過程中,各條語句的執行順序對程式的結果是有直接影響的。也就是說程式的流程對運作結果有直接的影響。是以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實作我們要完成的功能。

流程控制語句分類

    • 順序結構
    • 選擇結構
    • 循環結構

順序結構:

  是程式中最簡單最基本的流程控制,沒有特定的文法結構,按照代碼的先後順序,依次執行,程式中大多數的代碼都是這樣執行的。總的來說:寫在前面的先執行,寫在後面的後執行.順序結構就不寫代碼示範了。

選擇結構:

  也被稱為分支結構。 選擇結構有特定的文法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,是以産生選擇,按照不同的選擇執行不同的代碼。 Java語言提供了兩種選擇結構語句

(1)if語句

  if語句第一種格式:

      if(關系表達式) {

        語句體

       }

1 package flowController;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         int num=10;
 6         if(num>5){
 7             System.out.println("num>5");
 8         }11     }
12 }      

  if語句第二種格式:  

 if(關系表達式) {

    語句體1;

   }else {

    語句體2;

  }

1 package flowController;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         int num=10;
 6         if(num>5){
 7             System.out.println("num>5");
 8         }else{
 9             System.out.println("num<5");
10         }
11     }
12 }      

  if語句後面跟一個邏輯判斷,判斷之後如果成立,就執行下面的語句體。

如果執行了if下面的語句體後,則不會執行else,如果執行了else,則if後面的判斷肯定不會成立。

當然,我們也能進行多個if嵌套

1 package flowController;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5         int num=10;
 6         if(num>5){
 7             System.out.println("num>5");
 8             if(num>8){
 9                 System.out.println("num>8");
10                 if(num>9){
11                     System.out.println("num>9");
12                 }
13             }
14         }else{
15             System.out.println("num<5");
16         }
17     }
18 }      

  結果:

JAVA中的流程控制語句

(2)switch語句

switch(表達式) {

  case 值1: 語句體1;

  break;

  case 值2: 語句體2;

  break;

  … default: 語句體n+1;

  break;

}

執行流程 :

首先計算出表達式的值 其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。 最後,如果所有的case都和表達式的值不比對,就會執行default語句體部分,然後程式結束掉。

1 package flowController;
 2 
 3 public class Test2 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int a=5;
 8         switch (a) {
 9         case 1:
10             System.out.println("a=1");
11             break;
12         case 2:
13             System.out.println("a=2");
14             break;
15         case 3:
16             System.out.println("a=3");
17             break;
18         case 4:
19             System.out.println("a=4");
20             break;
21         case 5:
22             System.out.println("a=5");
23             break;
24         default:
25             System.out.println("a不确定");
26             break;
27         }
28     }
29 }      
JAVA中的流程控制語句

if 和 switch的差別

  switch建議判斷固定值的時候用

     if建議判斷區間或範圍的時候用  

  用switch能做的,用if都能做,單反過來則不行

 循環結構:

   有很多操作,用循環操作可以很好的解決。

(1)for循環:

  第一中:

  它的一般形式為: for(<初始化>; <條件表達式>; <增量>) 語句; 初始化總是一個指派語句, 它用來給循環控制變量賦初值; 條件表達式是一個關系表達式, 它決定什麼時候退出循環; 增量定義循環控制變量每循環一次後 按什麼方式變化。

1 package flowController;
 2 
 3 public class Test3 {
 4     public static void main(String[] args) {
 5         int [] nums={12,10,58,13,4,33,66,32};
 6         for (int i = 0; i < nums.length; i++) {
 7             System.out.println(nums[i]);
 8         }
 9     }
10 }      

 執行流程:

  A:執行初始化語句

  B:執行判斷條件語句,看其結果是true還是false

  如果是false,循環結束。

  如果是true,繼續執行。

  C:執行循環體語句

  D:執行控制條件語句

  E:回到B繼續

   第二種:

   

1 package flowController;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 public class Test3 {
 7     public static void main(String[] args) {
 8         List<Student> list = new ArrayList<Student>();
 9         Student s1 = new Student("aa");
10         Student s2 = new Student("bb");
11         Student s3 = new Student("cc");
12         Student s4 = new Student("dd");
13         list.add(s1);list.add(s2);list.add(s3);list.add(s4);
14         for (Student student : list) {
15             System.out.println(student.getName());
16         }
17     }
18 }      

  這種能直接擷取到集合裡面的對象,友善周遊;

 (2)while循環:

  while(判 斷條件語句) {
         循環體語句;
     }           

while循環和for循環可以等價轉換,但還是有些小差別的:

  for循環适合針對一個範圍判斷進行操作

  while循環适合判斷次數不明确操作

執行流程:

  先進行條件判斷

  成立執行循環體,不成立不進行循環;

  執行後再判斷成立不成立;

1 package flowController;
 2 
 3 public class Test4 {
 4     public static void main(String[] args) {
 5         int n=20;
 6         while (n>1) {
 7             System.out.println(n);
 8             n--;
 9         }
10     }
11 }      

  while循環一定要做好退出循環的條件,要不很容易造成死循環;

  

(3)do.....while循環:

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

  先執行循環體,

  再進行條件判斷

  成立再執行循環體,不成立退出

是以:do…while循環至少會執行一次循環體。

1 package flowController;
 2 
 3 public class Test4 {
 4     public static void main(String[] args) {
 5         int n=20;
 6         do {
 7             System.out.println(n);
 8             n--;
 9         } while (n>1);
10     }
11 }      

跳出控制語句

  • break 中斷
  • continue 繼續
  • return 傳回 4

break:直接跳出循環:

1 package flowController;
 2 
 3 public class Test5 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         for (int i = 0; i < 20; i++) {
 8             System.out.println(i);
 9             if(i==4){
10                 break;
11             }
12         }
13     }
14 
15 }      

例如當 i==4之後 直接退出循環;

JAVA中的流程控制語句

continue:退出本次循環

1 package flowController;
 2 
 3 public class Test5 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         for (int i = 0; i < 20; i++) {
 8             if(i%2==0){
 9                 continue;
10             }
11             System.out.println(i);
12         }
13     }
14 
15 }      

  例如:當i%2==0.直接退出本次循環,進入下次循環;

return :

  return關鍵字不是為了跳轉出循環體,更常用的功能是結束一個方法,也就是退出一個方法。跳轉到上層調用的方法。

1 package flowController;
 2 
 3 public class Test6 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int n=getnum();
 8         System.out.println(n);
 9     }
10     
11     public static int getnum(){
12         int i=0;
13         return i;    
14     }
15 }      
JAVA中的流程控制語句

好了  ,關于流程控制就說那麼多;

歡迎大家一起說出自己的想法。