一、控制结构
控制结构是控制程序如何运行的特殊的语句结构。
控制结构分为 顺序控制结构 分支控制结构 循环控制结构。
二、顺序控制结构
除了分支控制结构 和 循环控制结构之外的语句都是按照顺序控制结构运行的。即,语句由上到下,由左到右依次执行。
三、分支控制结构
1.if判断
i. if语句
if可以实现判断,通过判断的结构决定是否执行某段代码。
基本结构:
执行逻辑图:
ii. if..else..语句
基本结构:
执行逻辑图:
iii. if..else if..else语句
基本结构:
执行逻辑图:
2. switch..case..语句
i. switch..case..
根据输入项的值的不同,走不同分支代码。
输入项的值只能是byte/short/char/int,jdk7之后,支持String。
基本结构:
执行逻辑图:
case用来实现匹配,case是进入的位置,一旦匹配成功,则从当前case位置进入,执行之后的代码,之后的所有case和default也会被执行。
switch中也可以带一个default,则前面所有的case如果都匹配不成功,由default进行匹配。
如果不想之后的case和default执行,需要通过break跳出switch。
四、循环控制结构
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 }
原文地址:https://www.cnblogs.com/xiaoluohao/p/11305231.html