控制语句
控制语句:把语句组合成能完成一定功能的小逻辑模块。它分为三类:顺序、选择和循环。
学会控制语句,是真正跨入编程界的“门槛”,是成为“程序猿”的“门票”。
1.“顺序结构”代表“先执行a,再执行b”的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
2.“条件判断结构”代表“如果…,则…”的逻辑。比如,如果女朋友来电,则迅速接电话;如果看到红灯,则停车;
3.“循环结构”代表“如果…,则重复执行.”的逻辑。比如,如果没打通女朋友电话,则再继续打一次;如果没找到喜欢的人,则再继续找。
很神奇的是,三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。实际上,任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。
条件判断结构(选择结构)
条件判断结构有:if结构和switch结构。而if结构又可以分为if单分支结构、if-else双分支结构、if-else if-else多分支结构。
语法结构:
if(布尔表达式){
语句块
}
注意:
1.如果if语句不写{},则只能作用于后面的第一条语句。
2.强烈建议,任何时候都写上{},即使里面只有一句话!
Math 类的使用
- java.lang包中的Math类提供了一些用于数学计算的方法。
- Math.random0该方法用于产生0到1区间的double类型的随机数,但是不包括1。int i=(int)(6*Math.random());//产生:[0,5]之间的随机整数
if-else双分支结构
语法结构:
if(布尔表达式){
语句块1
}else{
语句块2
}
if-else if-else 多分支结构
语法结构:
if(布尔表达式1){
语句块1;
}else if(布尔表达式2){
语句块2;
}..…
else if(布尔表达式n){
语句块n;
} else {
语句块n+1;
}
switch多分支结构(多值情况)
语法结构:
switch(表达式){
case值1:
语句块1;
[break];
case值2:
语句块2;
[break];
... ... ...
[default:
默认语句块;]
}
1.switch会根据表达式的值从相匹配的case标签处开始执行,一直执行到break处或者是switch的末尾。如果表达式的值与任一case值不匹配,则进入default 语句。
2.switch中表达式的值,是int(byte、short、char也可,long不行)、枚举,字符串。
循环结构
循环结构分两大类,一类是当型,一类是直到型。
- 当型:
当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。
- 直到型:
先执行某语句,再判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,比如do-while循环。
while循环
语法结构:
while(布尔表达式){
循环体;
}
1.在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
2.语句中应有使循环趋向于结束的语句,否则会出现无限循环——“死“循环。
do-while循环
语法结构:
do{
循环体;
}while(布尔表达式);
do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。
循环结构(for)
语法结构:
for(初始表达式;布尔表达式;迭代因子){
循环体;
}
- 初始化部分设置:循环变量的初值
- 条件判断部分为:布尔表达式
- 迭代因子:控制循环变量的增减
for循环在执行条件判定后,先执行的循环体部分,再执行步进。
嵌套循环
循环语句内部,再写一个或多个循环,称为嵌套循环。一般工作中多见的就是两层。
break语句和continue 语句
1.break用于强行退出整个循环
2.continue用于结束本次循环,继续下一次
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
带标签的continue 语句
“标签”是指后面跟一个冒号的标识符,例如:“label:”。对Java来说唯一用到标签的地方是在循环语句之前。
“goto有害”论中,最有问题的就是标签,而非goto,随着标签在一个程序里数量的增多,产生错误的机会也越来越多。但Java标签不会造成这方面的问题,因为它们的活动场所已被限死,不可通过特别的方式到处传递程序的控制权。