一.复合语句
与C语言及其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句由开括号“{”开始,闭括号“}”结束。
在前面的学习中我们已经接触到了这种复合语句。例如,在定义一个类或方法时,类体就是以“{”与“}”作为开始与结束的标记,方法体同样也是以“{”与“}”作为标记。复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,能够用在任何一个单独语句可以使用的地方,并且在复合语句中还可以嵌套复合语句。
例如,下面这段代码,在主方法中定义了复合语句块,复合语句块中还可以包含另一复合语句块。
二.条件语句
if条件语句
if 条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”。如果该表达式返回的结果为true,则执行其后的语句;如果为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if..else语句和if...else if多分支语句。
简单的if条件语句的执行过程如下图所示:
流程图
if...else语句
if..else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。语法如下:
if(条件表达式){
语句序列1
}else{
语句序列2
}
if后面“()”内的表达式的值必须是boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。
同简单的if条件语句一样,如果if...else语句的语句序列中只有一条语句(不包括注释),则可以省略该语句序列外面的“{}”。有时为了编程的需要,else或if后面的“{}”中可以没有语句。
下面是使用if...else语句校验密码的示例:
流程图
if...else if多分支语句
if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”。语法如下:
if(条件表达式1){
语句序列1
} else if(条件表达式 2){
语句序列2
}
...
else if(条件表达式n){
语句序列n
}
以下为if...else if语句实现饭店座位分配的示例:
流程图
switch多分支语句
switch语句中表达式的值必须是整型、字符型、字符串类型或枚举类型,常量值1~n的数据类型必须与表达式的值的类型相同。
switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break 语句为止。此时,如果该case语句中没有break 语句,将继续执行后面case中的若干个语句,直到遇到break 语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch语句则不做任何处理。
以下为使用switch语句为考试分数分级的示例:
流程图
三.循环语句
while语句
while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。语法如下:
while (条件表达式){
语句序列
}
当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
以下为使用while循环语句计算1~1000的相加结果:
流程图:
do...while循环语句
do...while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句“{}”中的程序段至少要被执行一次。语法如下:
do{
语句序列
}while(条件表达式);
以下为使用do...while语句进行用户登录验证:
流程图:
for循环语句
for循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。
传统的for语句中有3个表达式,其语法如下:
for(表达式1;表达式2;表达式3){
语句序列
}
在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环体;在执行完循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从计算表达式2开始,若表达式2返回true,则继续循环,否则跳出整个for语句。
以下为使用for循环计算2~100所有偶数之和:
流程图
四.循环控制
循环控制包含两方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转。
控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break 语句
是中断循环,continue语句是执行下一次循环。
break语句
使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从
而中断当前循环。
以下为使用break语句跳出for循环从而输出1~20出现的第一个偶数:
流程图
使用标签让break结束外层循环:
流程图
continue语句
continue 语句是针对break 语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试。在while和do...while循环中,continue语句使控制直接回到条件测试部分。
以下为使用continue语句跳过for循环输出1~20的奇数:
流程图