第六章 熟悉Java的流程控制语句
Java的程序流程控制分为顺序结构、选择结构、循环结构和跳转语句。
- 顺序结构:按照程序代码自上而下执行,直到程序结束,中间没有任何判断和跳转。
- 选择结构(分支结构):判断给定的条件,根据判断结果控制程序的流程。包括if语句和switch语句。
2.1 if语句:通过判断给定表达式的值来决定程序的流程。常见if语句的形式有三种:
(1)if(expression){
statement;
}
(2)if(expression){
statement;
}else{
statement;
}
(3)if(expression){
statement;
}else if(expression){
statement;
}
...... //可以有零个或多个else if语句
else{ //最后的else语句可以视情况省略
statement;
}
表达式expression的结果只能是布尔型,即此表达式的结果只能是true或false
当表达式expression为true时执行if所对应的代码块,否则,如果有else则执行else对应的代码块。
(2)和(3)是相通的,(3)中如果没有else if代码块就变成(2)。
else语句必须和if或者else if配对使用,else总是与离它最近的if或者else if配对,可以通过大括号改变配对关系。
备注:在流程控制语句中用每对大括号括起来的代码被称为代码块,一个代码块通常被当做一个整体来执行(除非运行过程中遇到break、continue、return等关键字,或者出现异常),这个代码块也被称为条件执行体。
2.2 switch语句(多分支语句):通过数据匹配的方式实现程序的多分支控制,语法格式如下:
switch(expression){
case value 1:
statement1;
break;
case value 2:
statement2;
break;
...... //可以有多个case代码块
case value N:
statementN;
break;
default:
break;
}
expression的返回值类型只能是char、byte、short或int。
switch语句先取得expression的返回值,再根据返回值依次与每个case语句所对应的value值匹配,匹配成功则执行相应的代码块。
case语句对应的value值必须为常量,且各个value值应不同。
break语句用来在执行完相应的case分支语句后跳出switch语句,否则将顺序执行后面的语句。某些情况下,多个不同的case值要执行一组相同的操作,可以省略相应代码块中的break语句。
default是可选的,当表达式的值与任何的value值都不匹配时,则执行default代码块。如果没有default语句,则程序不做任何操作,直接跳出switch语句。
3. 循环结构:利用循环结构可重复执行某一段代码,直到不满足循环条件为止。循环结构主要有for、while、do-while三种循环语句。
3.1 for语句:适用于明确知道循环次数的情况。语法格式如下:
for(initialization;condition;iteration){
statement;
}
循环的初始化(initialization):只在循环开始前执行一次,通常在此进行迭代变量的定义,该变量将作为控制整个循环的计数器适用。
条件表达式(condition):一个布尔型表达式,如果值为真,执行循环体内的语句statement,如果为假则结束循环。
迭代表达式(iteration):通常是迭代变量的自增或自减运算表达式,在循环体(statement)执行完毕时执行。
3.2 while语句:通常用于重复执行次数不确定的循环。语法格式如下:
while(expression){
statement;
}
expression是一个布尔表达式,while语句首先得到expression的返回值,当返回值为true时,执行循环体内的语句statement,否则,循环结束。
3.3 do-while语句:do-while与while的区别在于第一次循环时,while是先判断循环条件,再循环,若条件为假,则循环体不会被执行。而do-while语句则是先执行循环体后再判断,即do-while循环至少会执行一次循环体。
4. 跳转语句:通过跳转语句可以实现程序流程的跳转。Java中的跳转语句包括break语句、continue语句和return语句。
4.1 break语句:break语句可以用在循环语句的内部,用来结束循环。例如:
public static void main(String[] args){
int i=0;
while(i<10){
i++;
if(i==5){
break;
}
System.out.println(i);
}
System.out.println("循环结束");
}
运行结果:输出1,2,3,4,5以后,将会输出“循环结束”。
4.2 continue语句:只能用在循环语句内部,用来跳过本次循环,继续执行下一次循环。在while和do-while循环结构中使用continue语句,表示跳转到循环条件处继续执行;而在for循环结构中使用continue语句,表示跳转到迭代语句处继续执行。例如:
public static void main(String[] args){
int i==0;
while(i<4){
i++
if(i==2){
continue;
}
System.out.println(i);
}
System.out.println("循环结束");
}
运行后输出结果将是:1,3,4,循环结束
4.3 return语句:return语句用在方法中,作用是终止当前方法的执行,返回到调用该方法的语句处,并继续执行程序。语法格式如下:
return [expression];
return语句后面可以带返回值,也可以不带。
表达式expression可以是常量、变量、对象等。return语句后面表达式的数据类型必须与方法声明的数据类型一致。
当程序执行return语句时,先计算表达式的值,然后将表达式的值返回到调用该方法的语句处。
位于return语句后面的代码块不会被执行,因此return语句通常位于代码块的最后。
5. Java程序的注释用法:Java有三种注释方式,分别为单行注释、多行注释和文档注释。
单行注释:以双斜杠"//"开始,终止于本行结束。用于对一行代码的简短说明。
多行注释:以“/*”开始,以“*/”结束,两者间所有的字符都是多行注释的内容。通常用于对文件、方法、数据结构等的说明,或者算法的描述。一般位于方法的前面,起引导作用,也可以根据需要放在其他位置。
文档注释:以“/**”开始,以“*/”结束,此间所有字符都是文档注释的内容。文档注释主要是为了支持JDK工具javadoc,通过javadoc,文档注释将会生成HTML格式的代码报告,因此文档注释应当书写在类、构造方法、成员方法以及常量或变量的定义之前。