流程控制:指通过关键字控制代码的执行流程;
顺序结构无关键字,一般而言大多数代码都是顺序结构;
选择结构的关键字:if、else、switch;
/** 选择结构的简单格式 **/ // 单分支结构 if(){ } // 双分支结构 if(){ }else{ } // 多分支结构 if(){ }else if(){ }else if(){ }… switch(){ case 1: ... ... } /** 选择结构详解 **/ if(条件表达式1){ 条件表达式1成立时执行的代码块; 条件表达式1成立时,将不会继续执行其后的所有条件判断直接跳出分支结构; }else if(条件表达式2){ 条件表达式2成立时执行的代码块; }else{ 以上所有条件表达式都不成立时要执行的代码块; }//else可根据实际情况选择是否添加 switch(表达式){ case值1: 表达式的值为值1时要执行的代码块; break;//如无break,会继续执行其后的case子句,直至碰到break或者switch语句整体执行完毕 case值n: 表达式的值为值n时要执行的代码块; break; default: 表达式值不为以上所有值时要执行的代码块; break; }
1、switch只适用于穷举法(需列举出所有可能的情况)
2、switch表达式的值的类型仅限于:int、String、Enum
3、只有当所有的case都不等于switch表达式的值时才执行default;default的执行顺序与其位置无关(default即使在case前,也不会最先执行它)
4、break作用是结束switch结构
5、case不能重复
循环结构的关键字:while、for
// 1、while循环; // while循环的格式: while(条件表达式){ 条件表达式成立时执行的代码块;(循环体) 迭代语句;(按指定的算符重复的更改某个变量的值) }//格式与if极为相似,甚至可以说是完全相同; /** while的执行过程: 1、判断条件表达式是是否成立,不成立结束while; 2、条件表达式成立,执行代码块一次; 3、重复1、2直到条件表达式不成立; **/ //2、do-while; //do-while循环的格式 do{ 循环体(循环执行的代码块) 迭代语句; }while(条件表达式); /** while与do-while的区别: do-while是先执行,后判断;至少执行一次; while先判断后执行;可能一次也不执行; **/ //3、for; //格式如下 for(初始化语句;条件表达式;迭代语句){ 循环体(条件表达式成立时执行的代码块) }//初始化语句:用于定义变量、给变量赋初始值的语句 //for特殊情况:初始化语句、条件表达式、迭代语句、都可以省略;构成死循环 //当条件表达式省略后:条件表达式的取值默认为true 初始化语句; while(条件表达式){ 循环体(条件表达式成立时执行的代码块) 迭代语句 }//根据以上两段代码格式,我们可以看出for和while完全等价,只是格式不同 //for循环中相关变量的作用域 int a=1;//变量a:在main方法的大括号内定义的作用域为整个main方法 for(int b=1;b<5;){ //变量b:在for循环的初始化语句中定义的作用域为整个for循环 int c=1; //变量c:在for循环的循环体中定义的,作用域为本次for循环 }//一个变量的作用域取决于定义此变量的括号
跳转语句共两个,分别为:break与continue;
break:
使用场景1:用在switch中,作用:结束switch结构;
使用场景2:用在循环中,作用:结束本层循环;
continue:
使用场景:用在循环中,结束此次循环,继续下一次循环;