流程控制指的是在程序运行的过程中控制程序运行走向的方式。主要分为以下几种:
顺序结构顺序结构,顾名思义,是指程序从上往下逐步顺序执行。中间没有任何的判断和跳转。
分支结构java提供两种分支结构:if和switch,其中if语句使用布尔表达式或者是布尔值进行判断来进行分支的控制,而switch语句则是使用整数,String类型,枚举类型。
if语句if语句使用布尔表达式或者是布尔值进行判断来进行分支的控制,主要有下面三种结构:
if语句if(条件){//语句}
执行走向
例:
intscore = 65;if(score >= 60){
System.out.PRintln("您及格了");
}
if…else语句if( 条件 ) {//语句1}else{//语句2}
程序执行走向
例:
intscore = 65;if(score >= 60){
System.out.println("您及格了,恭喜");
}else{
System.out.println("没及格,打扫厕所三个月");
}
if…else if语句if( 条件 ) {//语句}elseif( 条件 ) {//语句}else{//语句}
程序走向图
例:
对学员的结业考试成绩评测
成绩>=90 :优秀
成绩>=80 :良好
成绩>=60 :中等
成绩<60 :差
intscore = 70;//考试成绩if( score >= 90) {
System.out.println("优秀");
}elseif(score >= 80) {
System.out.println("良好");
}elseif(score >= 60) {
System.out.println("中等");
}else{
System.out.println("差");
}
在if语句中包含了另外一个if语句If(条件1){if(条件2){if(条件3){
}else{
}
}…......
}
通常情况下,这几种判断语句的语句块都有{}括号包裹,但如果语句只有一句,可以不使用花括号,例如
booleanb =true;if(b)
System.out.println("可以不使用花括号");elseSystem.out.println("建议打上花括号");
如果判断语句中只有一个语句,是可以不使用花括号的,但是建议大家依然使用花括号。
switch语句switch(表达式)//计算表达式的值{case常量 1://如果等于常量1语句;
break;case常量 2://如果等于常量2语句;
break;default://如果没有找到匹配的值语句
break;
}
和if语句不同的是,switch语句的表达式中可以传的是byte、short、int、long、String类型的值。
String s = "及格了";switch(s){case"及格了":
System.out.println("表现不错");
break;case"不及格":
System.out.println("打扫厕所");
break;default:
System.out.println("没来考试吗?把家长叫来");
break;
}
inti = 1;switch(i){case1:
System.out.println("获得第一名");
break;case2:
System.out.println("获得第二名");
break;case3:
System.out.println("获得第三名");
break;default:
System.out.println("您不是前三名");
break;
}
使用时注意break语句,如果漏掉的话,嘿嘿!
switch和多重if的比较相同点:
都可以实现多分支结构
不同点:
switch:只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断
多重if:处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况
循环结构循环语句也称作迭代语句,循环语句可以在满足条件的情况下反复执行某一段代码,循环语句包括:
while循环while( 循环条件 ) {//符合条件,循环继续执行;否则,循环退出循环操作//循环中被重复执行的操作}
特点:先判断,再执行
例句:打印出30个Hello
inti = 1;while(i <= 30){
System.out.println("Hello");
i++;
}
do-while循环
do{
循环操作//先执行一遍循环操作}while( 循环条件 );//符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断
//不管有没有及格,先打扫一遍厕所,再看他到底有没有及格。inti = 65;do{
System.out.println("倒霉,要打扫厕所");
}while(i < 60)
死循环问题:所有的循环控制语句,如果没有一个退出的条件,将会进入到一个死循环状态,上面一个例子,如果i小于60,将会一直在“打扫厕所”,无法继续往下执行。
for循环for(参数初始化; 条件判断; 更新循环变量){
循环操作;
}
特点:先初始化参数,在判断条件,如果成立,执行循环体,然后更新循环变量,再回到条件判断,不成立则直接退出循环。
for(inti = 0 ; i < 100 ; i++) {
System.out.println("我最棒");
}
控制循环结构
break语句在某些时候,我们需要在某种条件出现时强行终止循环,便可以使用break来完成这个功能。比如:
for(inti = 1; i <= 10; i++){if(i == 8){
break;
}
System.out.println("完成一圈");
}
上面一个例子,本该完成10圈,但是到地8圈的时候坚持不下了,break了,后面剩下的便不会再执行。
continue语句continue和break的功能有点类似,区别是continue只是跳过这一次循环,后面的循环依然会执行。例如:
for(inti = 1; i <= 10; i++){if(i == 8){continue;
}
System.out.println("完成一圈");
}
本该跑10圈,而他实际上只跑了9圈。