JAVA流程控制

java的流程控制結構有三種:順序、選擇、循環
JAVA流程控制JAVA流程控制JAVA流程控制 java

  1. 順序結構,就是從頭至尾依次執行每條語句的操做。
  2. 選擇結構,也稱條件控制,是指根據表達式的值有選擇的執行。
  3. 循環結構,也稱迴路控制,是根據循環初始條件和終結要求,執行循環體內的操做。

順序結構:

Java的基本結構就是順序結構,除非特別指明,不然就是按照順序一句一句執行。
順序結構是最簡單的算法結構。
語句與語句之間,框與框之間是按從上到下的順序進行的,它是由若干個依次執行的處理步驟組成的,它是任何一個算法都離不開的一種基本算法結構。算法


選擇結構:

咱們不少時候須要去判斷一個東西是否可行,而後咱們纔去執行,這樣一個過程在程序中用選擇語句來表達。數組

在java中,選擇結構分爲 if-else 語句和 switch 語句。ide

首先咱們來看下if-else語句:3d

if單選擇結構:
語法:code

if(布爾類型表達式){
    語句或語句塊
}
if語句(單支)的執行流程:
        首先判斷布爾類型表達式看它的結果是false仍是true
        若是是true執行{}裏面的方法體內容
        若是是flase就不執行{}裏面的方法體內容,程序日後加載

例如:blog

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
​
        System.out.println("請輸入內容:");
        String s = scanner.nextLine();
​
        if (s.equals("Hello"))
            System.out.println(s);
​
​
            scanner.close();
    }

  在這裏的s.equals的意思是判斷s所表示的字符串是否和後面的Hello相同,當判斷字符串時儘可能別用 == 。
if雙選擇結構:
語法:內存

if(布爾類型表達式){
    語句或語句塊
}else{
    語句或語句塊
}

 例如:作用域

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
​
        System.out.println("請輸入:");
        int score = scanner.nextInt();
        if(score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
​
        scanner.close();
    }

if多選擇結構:字符串

不少選擇不只僅只有兩個,因此要用多選擇結構處理。
語法: 
if(布爾表達式1){
    //若是布爾表達式1爲true將執行的語句
}else if(布爾表達式2){
    //若是布爾表達式2爲true將執行的語句
}else if(布爾表達式3){
    //若是布爾表達式3爲true將執行的語句
}else{
    //若是以上布爾表達式都不爲true將執行的語句
}

備註:
1.在多支語句中,這多種情形是一種互斥關係,非你即我,只有一種情形會成立,程序也只會執行條件裏面的一種代碼。
2.在多支語句中,若是最後一種情形它包含了它以上情形以外的全部情形,那麼該種情形也能夠這樣表達,省略if(條件)。
例如:

   int per = 76;
        if(per == 100){
            System.out.println("進1v1名師輔導班");
        }else if(per >= 90 && per < 100){
            System.out.println("進狀元班");
        }else if (per >= 80 && per < 90){
            System.out.println("進尖子班");
        }else if (per >= 70 && per < 80){
            System.out.println("進珍珠班");
        }else if (per >= 60 && per < 70){
            System.out.println("進普通班");
        }else  if(per < 60){
            System.out.println("不錄取");
        }

  
if嵌套結構:
在一個if裏再加一個if。
語法:

if(布爾類型表達式1){
   //若是布爾表達式1爲true將執行的語句
   if(布爾類型表達式2){
    //若是布爾表達式2爲true將執行的語句
    語句或語句塊
}else{
   //若是布爾表達式2爲false將執行的語句
    語句或語句塊
}
}else{
  //若是布爾表達式1爲false將執行的語句
    if(布爾類型表達式2){
   //若是布爾表達式2爲true將執行的語句
    語句或語句塊
}else{
   //若是布爾表達式2爲false將執行的語句
    語句或語句塊
}
}

例如:

String sex = "男";
double money = 18000;
if (sex.equals("男")) {
            if (money >= 20000) {
                System.out.println("女生眼中的高富帥");
            } else if(money < 8000){
                System.out.println("女生眼中的屌絲");
            }
        }else if (sex.equals("女")){
            if (money >= 12000){
                System.out.println("男生眼中的白富美");
            }else if (money <= 3000){
                System.out.println("男生眼中的女屌絲");
            }
        }

  

switch多選擇結構:
JAVA流程控制
switch case語句判斷一個變量與一系列值中某個值是否相等,每一個值稱爲一個分支。
switch語句重點變量類型能夠是:
byte、short、int、String或者char
case標籤必須爲字符串常量或字面量
語法:

int N = 2;
switch (N){
            case 2:
                System.out.println("2");
                break;
            case 's':
                System.out.println("s");
                break;
            default:
                System.out.println("wrong");
​
​
        }

  
注意:
1)switch中表達式的返回值只能是 int,byte,char,short,枚舉,JDK1.7以後能夠接收字符串類型;
2)case子句中的值必須是常量,且不能重複;
3)default無關緊要
4)break做爲某一個case代碼段的結束句,使其跳出程序。
5)case 情形之間也是一種互斥關係,非你即我。
case穿透性
在switch語句,若是case後面的break省略掉,將會出現穿透現象。不會判斷後面的case情形值,直接加載後面的case方法體內容
例如:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("今天星期幾了?");
    int week = scan.nextInt();    
    switch(week){
    case 1:
        System.out.println("Monday");
        break;
    case 2:
        System.out.println("Tuesday");
        break;
    case 3:
        System.out.println("Wednesday");
        break;
    case 4:
        System.out.println("Thursday");
        break;
    case 5:
        System.out.println("Friday");
        break;
    case 6:
        System.out.println("Saturday");
        break;
    case 7:
        System.out.println("Sunday");
        break;
    default:
        System.out.println("Sorry,i don't know!");
    }
}

循環結構:

順序結構的程序語句只能 被執行一次。若是你要一樣的操做執行屢次,就須要使用循環結構。
循環結構組成部分通常分爲4個部分:
1.初始化語句:在循環最初開始時,須要定義一個初始化的變量,並且只會定義一次。
2.條件判斷(結束條件):若是條件知足,進入循環,若是條件不知足,則退出循環
3.循環體內容:重複要作的事情內容,可能包含不少條語句(事情是有規律的)
4.迭代語句(步進語句):每次循環結束以後須要執行步進語句(迭代語句),對初始化變量作步進(迭代)

初始化語句必定和條件判斷表達式緊密結合
    迭代語句和條件判斷表達式也是緊密結合
    迭代語句是對初始語句中定義的初始化

java中有三種主要的循環結構:while循環 do-while循環 for循環
1.while循環
while循環不知道循環次數。先判斷,再循環。經常使用死循環。
while是最基本的循環,它的語法爲:

while(循環條件)
  {
    循環語句
  }
  只要循環條件的結果爲真,就執行循環語句

注意:必定要有退出循環的條件,不然會造成無限循環
例如:

public class Test {
    public static void main(String args[]) {
        int x = 10;
        while (x < 20) {
            System.out.print("value of x :" + x);
            x++;
            System.out.print("\n");
        }
    }
}

注意:必定要有退出循環的條件,不然會造成無限循環
例如:

public class Test {
    public static void main(String args[]) {
        int x = 10;
        while (x < 20) {
            System.out.print("value of x :" + x);
            x++;
            System.out.print("\n");
        }
    }
}
public class Test {
    public static void main(String args[]) {
        int x = 10;
        while (x < 20) {
            System.out.print("value of x :" + x);
            x++;
            System.out.print("\n");
        }
    }
}

以上實例編譯運行結構以下:

value of x : 10
value of x : 11
 ...
value of x : 19

2.do…while循環
對於while語句而言,若是不知足條件,則不能進入循環。但有時候咱們須要即便不知足條件,也至少 執行一次。
do…while循環和while循環相同,不一樣的是,
do…while循環至少會執行一次。
do…while循環的語法爲:

do {
         執行語句
} while(循環條件);

注意:布爾表達式在循環體的後面,因此語句塊在檢測布爾表達式以前已經執行了。若是布爾表達式值爲true,則語句塊一直執行,直到布爾表達式的值爲false。
例如:

public class Test {
    public static void main(Staing args[]) {
        int x = 10;
        do {
            System.out.print("value of x :" + x);
            x++;
            System.out.print("\n");
        } while (x < 20);
    }
}

以上實例編譯運行結果以下:

value of x : 10
...
value of x :19

3.for循環
雖然全部循環結構均可以用while或者do…while表示,但java提供了另外一種語句(for循環),使一些循環結構變得更簡單。
for循環的流程:
JAVA流程控制
for循環的語法爲:

for(初始化語句;判斷條件語句;控制條件語句){
循環體語句;
}

註釋:(1)初始化語句:一條或者多條語句,這些語句完成一些初始化操做
   (2)判斷條件語句:這是一個boolean 表達式,這個表達式能決定是否執行循環體
   (3)循環體語句:這個部分是循環體語句,也就是咱們要屢次作的事情
   (4)控制條件語句:這個部分在一次循環體結束後,下一次循環判斷條件執行前執行。經過用於控制循 環條件中的變量,使得循環在合適的時候結束
例如:

public class Test{
        public static void main (Staing args[ ]){
        for(int x=10;x<20;x=x+1){
        System.out.print("value of x :"+x);
        System.out.print("\n");
                }
            }
    }

編譯運行結果以下:

value of x :10
...
value of x :19

for和while的區別:
1.控制語句中所涉及到的循環變量,當for循環結束後,定義的循環變量不能再被訪問,而while循環結束後依然能夠被訪問到。若是不繼續使用循環變量,建議使用for循環,由於for循環結束後,循環變量就會從內存中消失,從而可以提升內存的使用效率
2.在已知循環次數的狀況下,建議使用for循環,當循環次數不肯定時使用while循環。
4.加強for循環
加強for循環的語法

for(聲明語句:表達式){
        //代碼句子
    }

聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其做用域限定在循環語句塊,其值與此時數組元素的值相等。
表達式:表達式是要訪問的數組名,或者是返回值爲數組的方法。
例如:

public class test {
    public static void main(String args[]) {
        int[] numbers = { 10, 20, 30, 40, 50 };
        for (int x : numbers) {
            System.out.print(x);
            System.out.print(",");
        }
        System.out.print("\n");
        String[] names = { "James", "Larry", "Tom", "Lacy" };
        for (String name : names) {
            System.out.print(name);
            System.out.print(",");
        }
    }
}

編譯運行以下:

10,20,30,40,50,
James,Larry,Tom,Lacy,

跳出循環的關鍵字:

break關鍵字:

break主要用在循環語句或者switch語句中,用來跳出整個語句塊。
break跳出最裏面的循環,而且繼續執行該循環下面的語句。

break實例:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ) {
         // x 等於 30 時跳出循環
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

以上實例編譯運行結果以下:

10
20

continue 關鍵字:

continue 適用於任何循環控制結構中。做用是讓程序馬上跳到下一次循環的迭代。
在for循環中,continue語句使程序當即跳轉到更新語句。
在while或者do...while循環中,程序當即跳轉到布爾表達式的判斷語句。

continue 實例:

10
20
40
50

return 關鍵字:

直接結束當前main方法,遇到return後,方法中的全部代碼將再也不執行。
注意:程序中要減小return的使用頻率。一旦使用return,整個main方法結束

擴展知識點:

1.死循環概念:循環中條件永遠都是true,死循環是永不結束的循環。死循環通常須要和跳出語句結合。2.循環嵌套 概念:是指一個循環的循環體是另外一個循環。好比說for循環中內置了一個for循環,就是循環嵌套。循環次數=外部循環的次數*內部循環的次數

相關文章
相關標籤/搜索