1、控制結構
控制結構是控制程序如何運行的特殊的語句結構。
控制結構分爲 順序控制結構 分支控制結構 循環控制結構。
2、順序控制結構
除了分支控制結構 和 循環控制結構以外的語句都是按照順序控制結構運行的。即,語句由上到下,由左到右依次執行。
3、分支控制結構
1.if判斷
i. if語句
if能夠實現判斷,經過判斷的結構決定是否執行某段代碼。
基本結構:java
執行邏輯圖:spa
ii. if..else..語句3d
基本結構:code
執行邏輯圖:blog
iii. if..else if..else語句開發
基本結構:it
執行邏輯圖:for循環
2. switch..case..語句
i. switch..case..
根據輸入項的值的不一樣,走不一樣分支代碼。
輸入項的值只能是byte/short/char/int,jdk7以後,支持String。
基本結構:class
執行邏輯圖:import
case用來實現匹配,case是進入的位置,一旦匹配成功,則從當前case位置進入,執行以後的代碼,以後的全部case和default也會被執行。
switch中也能夠帶一個default,則前面全部的case若是都匹配不成功,由default進行匹配。
若是不想以後的case和default執行,須要經過break跳出switch。
4、循環控制結構
1. while循環
i. while
語法結構:
1 while(判斷條件){ 2 執行的內容 3 改變條件的語句 4 }
循環的三要素:判斷的條件 執行的內容 改變條件語句
執行邏輯圖:
2. do...while & while...do
語法結構:
執行邏輯圖:
while 和 do..while的區別,在於while先判斷後執行,while中的代碼不必定可以執行到,但do..while是先執行後判斷,不管如何,do中代碼至少會執行一遍。do..while是能夠用while替代的,但while不必定能被do..while替代.
2.for循環
i.for
判斷條件 執行的代碼 改變條件的語句
基本的語法結構:
執行邏輯圖:
for循環相對於while循環,將循環要素提取到for的小括號中管理,使循環的代碼結構更加清晰,便於開發維護。
while和for本質上等價的,但for結構更加清晰,一般代碼也更少,是開發中最經常使用的循環方式。
for中的三個條件並不須要都存在,能夠根據須要空置。
for(;;){} //等價於死循環
3.break continue
i. continue
繼續當前循環
一旦循環中遇到continue,則本次循環continue以後的代碼再也不執行,回到循環開始位置繼續下一次循環。
ii. break
跳出當前循環
一旦循環中遇到break,則從break位置開始跳出整個循環語句,以後的循環再也不執行。
iii. break tag
在多層循環時,能夠經過break tag 方式,指定在break時要跳出的是哪一層循環。
這種寫法會形成程序的可閱讀性大幅度下降,不推薦使用。
若是想要跳出多層許願,須要一層一層break跳出。
案例:
1 import java.util.Scanner; 2 /** 3 continue break 4 */ 5 public class Demo05{ 6 public static void main(String args[]){ 7 //1.計算1-100的偶數和 8 /* 9 int sum = 0; 10 for(int i=1;i<=100;i++){ 11 if(i%2==0){ 12 sum+=i; 13 }else{ 14 continue; 15 } 16 System.out.println("當前的sum爲"+sum); 17 } 18 */ 19 20 //2.計算1-100的偶數和,若是和大於了500,則再也不繼續循環 21 /* 22 int sum = 0; 23 for(int i=1;i<=100;i++){ 24 if(i % 2 == 0){ 25 sum += i; 26 }else{ 27 continue; 28 } 29 if(sum > 500){ 30 break; 31 } 32 System.out.println(sum); 33 } 34 */ 35 36 //3.break tag語法 37 /* 38 int x = 1; 39 tag1:for(;x>0;){ 40 System.out.println("外層循環開始。。"); 41 for(int i = 0;i<10;i++){ 42 System.out.println(i); 43 if(i == 5){ 44 break tag1; 45 } 46 } 47 System.out.println("外層循環結束。。"); 48 } 49 System.out.println("最外層.."); 50 */ 51 52 //4.break tag的替代寫法 53 boolean outBreak = false; 54 for(;;){ 55 System.out.println("外層循環開始。。"); 56 for(int i = 0;i<10;i++){ 57 System.out.println(i); 58 if(i == 5){ 59 outBreak = true; 60 break; 61 } 62 } 63 if(outBreak){ 64 break; 65 } 66 System.out.println("外層循環結束。。"); 67 } 68 System.out.println("最外層.."); 69 } 70 }