Java基础语法(二)之流程控制语句
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块 。控制语句分为三类:顺序,选择和循环。
“顺序结构”代表”先执行a,再执行b”的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
“选择结构”代表”如果…,则…”的逻辑。比如,如果女朋友来点,则迅速接电话;如果看到红灯,则停车;
“循环结构”代表”如果…,则再继续…”的逻辑。比如,如果没打通女朋友电话,则再继续打一次;如果没找到喜欢的人,则再继续找。
顺序结构:
顺序结构是常见的程序执行结构,表示按照顺序一步一步执行程序。如:我们编写的简单的程序总是程序入口开始,顺序执行每一条语句直到执行完最后一条语句结束。
选择结构: 生活中经常需要进行条件判断,根据判断结果决定是否做一件事情,这就需要选择结构。
选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。
主要的选择结构有:
1)if单选择结构
2)if else 双选择结构
3)if else-if else 多选择结构
4)switch case语句结构
if单选择结构
语法结构:
if(布尔表达式){
语句块
}
if语句对布尔表达式进行一次判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。
if单选择的流程图如下:
/** * 测式if单选择 */ int a = 13;//定义int类型的变量 if(a>14){//判断条件 System.out.println("a的值大于13");//执行语句 }
if-else双选择结构
语法结构:
if(布尔表达式){
语句块1
}else{
语句块2
}
当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。
流程图:
/** * 测试if-else选择结构 */ int b = 3; if (b > 3) { System.out.println("b大于3"); }else{ System.out.println("b不大于3"); }
if else-if else多选择结构
语法结构:
if(布尔表达式1){
语句块1;
}else if(布尔表达式2){
语句块2;
}else if(布尔表达式n){
语句块n;
}else{
语句块n+1;
}
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2位真时,执行语句块2;否则,继续判断布尔表达式3…..;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分。
流程图:
/** * 测试if-else语句结构 */ //随机生成1-100之间的一个数字作为分数 int score = (int)(Math.random()*100) + 1; System.out.println(score); if(score>=90){ System.out.println("你很优秀"); }else if(score>=80){ System.out.println("你还可以"); }else if(score>=60){ System.out.println("你刚合格"); }else{ System.out.println("需要好好努力哦!"); }
Switch 多选择结构
语法格式:
Switch(表达式){
Case 值1:
语句序列1;
[break];
Case 值2:
语句序列2;
[break];
…
Case 值n:
语句序列n;
[break];
Default:
默认语句;
}
Switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况。)根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在jdk1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在jdk1.7之后允许使用字符串(String).
要注意:当布尔表达式是等值判断的情况时,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构
流程图:
/** * 测试swtich case 语句 */ String season = "春季"; switch(season){ case "春季": System.out.println("春季应该踏青!!"); break; case "夏季": System.out.println("夏季可以游泳!!"); break; case "秋季": System.out.println("秋季可以露营!!"); break; case "冬季": System.out.println("冬季可以滑雪!!"); break; default: System.out.println("输入的季节错误!!"); }
循环结构
循环结构分为两大类,一类是当型,一类是直到型
当型:
当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。
直到型:
先执行某语句,在判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环, 比如do-while循环。
While循环
语法结构:
While(布尔表达式){
循环体;
}
在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前 重新计算一次。
语句中应有使循环趋向于结束的语句,否则会出现无限循环—“死“循环
While循环的结构流程图:
/** * 测试while循环 * 打印1-10 */ int i = 1; while(i <= 10){ System.out.println(i); }
do-while循环
语法结构:
do{
循环体;
}while(布尔表达式);
do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do- while循环的循环体至少执行一次。do-while循环结构流程图:
/** * 测试do while循环 * 打印1-10 */ int j = 1; do{ System.out.println(j); j++; }while(j<=10);
for循环
for(初始表达式;布尔表达式;迭代因子){
循环体;
}
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行 初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候进行某种 形式的“步进“,即执行迭代因子。
A,初始化部分设置循环变量的初值
B,条件判断部分为任意布尔表达式
C,迭代因子控制循环变量的增减
for循环在执行条件判定后,先执行循环体部分,在执行步进。
for循环的流程图:
/** * 测试for循环 */ for(int k=1;k<=10;k++){ System.out.println(k); }
break与continue
break表示结束当前循环,常用于跳出循环,continue则是结束本次循环,开始下次循环
package com.aira.basic.data; /** * 测试break和continue * @author aria * */ public class BreakTest { public static void main(String[] args) { /** * 测试break */ for(int i=1;i<=5;i++){ if(i==3){ break; } System.out.println(i); } System.out.println("-------------------"); /** * 测试continue */ for(int i=1;i<=5;i++){ if(i==3){ continue; } System.out.println(i); } } }
结果: