程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序可以通过控制语句来对程序实现选择、循环、转向和返回等流程控制。 程序控制结构包括:顺序结构、分支结构、循环结构。
顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。 如图: 示例:
int a = 11; //第一步 int b = 2; //第二步 int c = a+b; //第三步 System.out.println(“a+b的结果为:”+c); //第四步1)分支结构又称为选择结构。当程序执行到控制分支语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。 2)分支结构包括单分支、双分支和多分支三种形式。 如图: 2.1单分支 【语法格式】 if(布尔表达式){语句块;} 说明:当语句块为一条语句时,大括号可以省略。只有布尔表达式为true时,才进入if语句中。 【示例】
int age = 20; if(age >= 18){ System.out.println("成年人"); }2.2双分支 【语法格式】
if(布尔表达式){ 语句块;//if分支 }else{ 语句块;//else分支 }s【示例】
int age = 20; if(age >= 18){ System.out.println("成年人"); }else{ System.out.println("未成年人"); }2.3多分支-1 【语法格式】
if(布尔表达式){ 语句块; }else if(布尔表达式){ 语句块; }else{ 语句块; }【示例】
int age = 20; if(age >0 && age <=18){ System.out.println("未成年"); }else if(age > 18 && age <=40) { System.out.println("青年"); }else if(age > 40&& age<=50) { System.out.println("中年"); }else if(age > 50) { System.out.println("老年"); }else{ System.out.println("见鬼了"); }2.4多分支-2 【语法格式】
switch (表达式) { case 值1: 语句; break; case 值2: 语句; break; default: 语句; break; }说明: - 表达式的值只能为:char、byte、short、int类型、String、enum类型,其它类型均非法 - break语句可以省略,但会出现switch穿透 - default语句也可以省略,一般不建议省略,并且放置在最后 【示例】
public static void main(String[] args) { String type = "dog"; switch(type) { case "cat": System.out.println("喵"); break;//注意break case "dog": System.out.println("旺"); break; case "sheep": System.out.println("咩"); break; default: System.out.println("哇!"); } System.out.println("switch执行结束!"); }当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。 循环结构的三个要素:循环变量、循环体和循环终止条件。 while、do…while、for三种循环。 如图: 3.1 while语句 【语法格式】
while(布尔表达式){ 循环体; //一条或多条语句 }【示例】
int i = 1; while(i<=5) { System.out.println(i); i++; }3.2 do…while语句 【语法格式】
do { 循环体; }while(条件判断表达式);【示例】
int i = 1; do{ System.out.println(i); i++; }while(i<=0); //注意分号3.3 for语句 【语法格式】
for(表达式1;表达式2;表达式3) { 循环体; //一条或多条语句 }【示例】
for (int i=1; i<=5; i++) { System.out.println(i); }增强for循环 forEach
for(数据类型 变量名 : 数组/集合){ }3.4 break语句 强制退出某个循环体,结束循环语句的执行 【示例】
public static void main(String[] args) { for(int i=1; i<=10; i++) { System.out.println(i); if(i == 5){ break; //会跳出当前循环 } } //break跳到这里 } 3.5 continue语句 终止某次循环过程,跳过continue语下方未执行的代码,开始下一步循环过程 【示例】 public static void main(String[] args) { for (int i=1; i<=10; i++) { if (i == 5) { continue; //会跳该次循环,跳到i++代码处 } System.out.println(i); } }3.6 流程控制语句总结 条件判断语句:if语句、switch语句。 循环执行语句:do while语句、while语句、for语句。 跳转语句:break语句、continue语句、return语句。
三种循环结构的异同点: 用while和do…while循环时,循环变量在循环体之前初始化,而for循环一般在语句1进行初始化。 while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式。也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。 这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。