程序流程控制结构和方法
程序流程控制结构分为:顺序、选择、循环以及异常处理结构。语句是程序的基本组成单位。在java中分简单语句和符合语句,简单语句就是一行代码,例如,privateint3=3;复合语句就是一些简单语句的组合了,例如一个方法等等。一般来说语句的执行流程是按顺序来进行的,但是当遇到一些特殊的条件,比如循环,这时候语句就会按照流程控制结构来进行了。
(1)选择结构
选择结构用于根据不同的条件,实现不同的操作,它提供了一种机制,使得程序根据相应的条件运行对应的语句。java言语实现选择结构有两种形式:一种是两路分支选择的if-else语句,另一种是多分枝选择的switch语句。选择语句需要用到逻辑学里面的东西,但是比较浅显,如命题的真假,是否等。逻辑命题用于逻辑表达式表示,用作两路分支或多路分支结构的逻辑条件。
显然,我们比较关心条件的书写,那这个条件一般有:关系表达式,逻辑表达式和条件运算表达式。
①关系表达式:用关系运算符把两个表达式连接的式子。计算两个同类型表达式的值,然后进行比较,其结果为:真(true)或假(false)。例如:
x%2==0;
x+y>=0;
②逻辑表达式:操作数是逻辑值且用逻辑符连接的表达式的式子成为逻辑表达式,其值仍为逻辑值。例如:
x>6&&y<3;
x>6||y>8;
y%4==0&&y%100!=0&&y%400==0//y是闰年条件
③条件运算表达式:由三目运算符连接起来的表达式,语法格式为:(逻辑表达式)?(表达式1):(表达式2)。当逻辑表达式的值为真时,返回表达式1的值,否则,返回表达式2的值。
(2)if-else语句
一般的if-else语句是这样的,
if(逻辑表达式){或if(逻辑表达式)语句1;
语句1;[else语句2;]
}else{
语句2;
}
if语句是专门用来实现选择结构的语句,它根据逻辑条件中的真假来决定运行两种操作中的一种。例如:闰年的条件是:能被4整除但又不能被100整除,或正被400整除的公元年。所以,闰年的判断可以用一个逻辑表达式表示。
下面来判断2012年是否为闰年:
publicclassIsLeapYear{
publicstaticvoidmain(Stringargs[]){
intyear=2012;
booleanleapYear=(year%4==0&&year%100!=0||year%400==0);
if(leapYear){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"不是闰年");
}
}
}
if-else语句的嵌套:
在if-else语句中的语句1或语句2中的语句也可以是if-else语句,这样就形成了if-else语句的嵌套。其中最常用的是elseif语句嵌套的多选择结构:
if()语句1
elseif(逻辑表达式)语句2
........
elseif(逻辑表达式)语句n
else语句n+1
程序运行时会从上至下判断逻辑条件,一旦某个逻辑条件满足(即布尔表达式的值为真),则运行相应的语句,然后就不再判断其他的条件,直接转到结构出口,运行if语句的后续语句。当然在这种多选择的结构中,比较容易犯混淆if与else之间的搭配关系。java语言规定:else总是与离它最近的if配对。如果需要可以用花括号{}来改变配对关系,其实我们经常这样做。