java小白成长记---(2)
_02_Java程序基础之流程控制
流程控制结构
①程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序可以通过控制语句来对程序实现选择、循环、转向和返回等流程控制。
②程序控制结构包括:顺序结构、分支结构、循环结构。
1. 顺序结构
顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。
示例:
int a = 11; //第一步
int b = 2; //第二步
int c = a+b; //第三步
System.out.println(“a+b的结果为:”+c); //第四步
2. 分支结构
1)分支结构又称为选择结构。当程序执行到控制分支语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。
2)分支结构包括单分支、双分支和多分支三种形式。
2.1单分支
【语法格式】
if(布尔表达式){语句块;}
说明:当语句块为一条语句时,大括号可以省略。只有布尔表达式为true时,才进入if语句中。
【示例】
int age = 20;
if(age >= 18){
System.out.println(“成年人”);
}
2.2双分支
【语法格式】
if(布尔表达式){
语句块;//if分支
}else{
语句块;//else分支
}
【示例】
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;
}
说明:
1.表达式的值只能为:char、byte、short、int类型、String、enum类型,其它类型均非法
2.break语句可以省略,但会出现switch穿透
3.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执行结束!”);
}
3. 循环结构
当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。
循环结构的*三个要素 *:循环变量、循环体和循环终止条件。
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);
}
}
三种循环结构的异同点:
(1)用while和do…while循环时,循环变量在循环体之前初始化,而for循环一般在语句1进行初始化。
(2)while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式。也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。
(3)这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。