1.1 程序结构
顺序结构、选择结构和循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基本构造单元。我们之前编写的程序都是顺序结构,比如定义一个int类型的变量并输出,代码如下:
int a=15;
System.out.println(a);
1.2 条件语句
条件语句根据不同的条件来执行不同的语句,在Java中,条件语句主要包括if语句和Switch语句两种。
1.2.1 if条件语句
if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行
另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字f之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if...else语句和if..else if多分支语句。
1. 简单的if条件语句
语法如下:
if(布尔表达式) {
语句:
}
int a=100;
if(a==100)
System.out.ptint("a的值是100");
if..else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现
为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
语法如下:
if(布尔表达式) {
语句1;
}else {
语句2;}
如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else
后面的语句。
1.if... else if多分支语句
if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理;如果满足另一种条件,则进行另一种处理”。
语法如下:
if(表达式1) {
语句1
}
else if(表达式2) {
语句2
}
...
else if(表达式n) {
语句n
}
表达式1~表达式n:必要参数。可以由多个表达式组成,但最后返回的结果一定要为boolean类型。
语句1~语句n:可以是一条或多条语句,当表达式1的值为true时,执行语句1;当表达式2
的值为true时,执行语句2,依此类推。
1.2.2 switch多分支语句
语法如下
switch(表达式){
case 常量块1:
语句块1
[break;]
...
case 常量块n:
语句块n
[break;]
default:
语句块n+1
[break;]
}
switch语句中参数必须是整型、字符型、枚举类型或字符串类型,常量值1~n必须是与参数兼容的数据类型。
switch语句首先计算参数的值,如果参数的值和某个case后面的常量表达式相同,则执行该case语句后的若干个语句,直到遇到break语句为止。此时如果该case语句中没有break 语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。若没有任何一个常量表达式与参数的值相同,则执行default后面的语句。
break的作用是跳出整个switch语句。
default语句是可以不写的,如果它不存在,而且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。
1.3 循环语句
循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了4种常用的循环语句,分别是while语句、do...while语句、for语句和foreach语句,其中,foreach语句是for语句的
特殊简化版本。
1.3.1 while循环语句
while语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句。
语法如下:
while(条件表达式)
{
执行语句
}
1.3.2 do...while循环语句
do...while循环语句与while循环语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while 循环语句则先执行一次循环后,再判断条件是否成立。也就是说do...while 循环语句中"{ }"中的程序段至少要被执行一次。
语法如下
do
{
执行语句
}while(条件表达式);
do...while语句与while语句的一个明显区别是do..while语句在结尾处多了一个分号 (;)。根据do. while循环语句的语法特点总结出的do...while循环语句的执行流程。
1.3.3.1. for循环语句
for循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某某语句,直到某个条件得到满足。
for语句语法如下:
for(表达式1;表达式2;表达式3) {
语句
}
表达式1:该表达式通常是一个赋值表达式,负责设置循环的起始值,也就是给控制循环的变量赋初值。
表达式2:该表达式通常是一个关系表达式,用控制循环的变量和循环变量允许的范围值进行比较。
表达式3:该表达式通常是一个赋值表达式,对控制循环的变量进行增大或减小。
语句:语句仍然是复合语句。
for循环语句的执行流程如下:
(1) 先执行表达式1。
(2) 判断表达式2,若其值为真,则执行for语句中指定的内嵌语句,然后执行(3)。若表达式2值为假,则结束循环,转到(5)。
(3) 执行表达式3。
(4) 返回(2)继续执行。
(5) 循环结束,执行for语句下面的一个语句。
1.3.3.2. foreach语句
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何
foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句
格式称之为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。
语法如下:
for(循环变量 x:遍历对象 obj) {
引用了x的Java语句;
}
1.4.1.1 break语句
使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从而中断当前循环。在嵌套的循环中使用break,跳出内层循环。
1.4.1.2 break语句
使用break语句可以跳出switch结构。在循环结构中,同样也可用break语句跳出当前循环体,从而中断当前循环。在嵌套的循环中使用break,跳出内层循环。
1.4.2 continue语句
continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue语句后,首先执行循环的增量部分,然后进行条件测试。在while和do...while循环中,continue语句使控制直接回到条件测试部分。
与break语句一样,continue语句也支持标签功能,语法如下:
标签名 :循环体 {
continue 标签名;
}
标签名:任意标识符。
循环体:任意循环语句。
continue 标签名:continue语句跳出指定的循环体,此循环体的标签名必须与continue的标签名一致。