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 }

  結果:

 


(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 }

 

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之后 直接退出循環;

 

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 }

好了  ,關於流程控制就說那么多;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM