1. 程序控制
程序结构划分
1.1 顺序结构
顺序结构:程序中语句的执行次序是按照语句的书写顺序一句接一句执行:
1.2 分支结构
选择结构:也称为分支结构。在选择结构中,尽管程序是一句接一句顺序书写的,但在执行程序时,根据选择判断条件的“真”与“假”,只执行程序中的一部分语句,而不执行程序中的另外一部分语句:
1.3 循环结构
循环结构:也称为重复结构,迭代结构。在循环结构程序中,位于循环体中的语句可以根据循环条件反复执行多次,直到条件值为假为止:
2. 程序控制语句
2.1 分支语句
分支语句有单,双分支结构和多分支结构
2.1.1单分支结构
格式:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
// 大括号内只有一条语句时, 这对大括号可以省略。如果条件满足则按顺序执行大括号中的语句。当括号中的语句是一条以上,则括号不能省略。
实例:
public class Test {
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print("这是 if 语句");
}
}
}
2.1.2 双分支结构
格式:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
2.1.3 多分支结构
public class Test {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print("这是 if 语句");
}else{
System.out.print("这是 else 语句");
}
}
}
实际中常遇到要判断一个表达式满足一系列不同的值做不同的处理。如果用if来实现写起来不但很麻烦,且可读性不好。于是,设计出了switch开关语句:
2.1.4 Switch开关语句
格式:
switch(expression){
case value : //语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选//语句
}
实例:
public class Test {
public static void main(String args[]){
char grade = 'A';
switch(grade){
case 'A' :System.out.println("Excellent!");break;
case 'B' :
case 'C' :System.out.println("Well done");break;
default :System.out.println("Invalid grade");
}
}
}
3. 循环语句
该语句用来控制循环,有时称为“迭代语句”。语句重复执行,直到起控制作用的布尔表达式得到“假”的结束为止,可以分3个部分:while语句、do-while语句和for语句。
3.1 while语句
格式:
while(布尔条件){
//要进行循环的语句
}
实例:
class While {
public static void main(String args[]) {
int n = 10;
while(n > 0) {
System.out.println("循环结果:" + n);
n--;
}
}
}
3.2 do-while语句
格式:
do{
//执行循环的语句
}while(布尔条件式);
注意:
do-while中的语句至少会执行一次,即使表达式第一次的值为false,实际上,while语句更常用。
实例:
class DoWhile {
public static void main(String args[]) {
int n = 10;
do {
System.out.println("循环结果:" + n);
n--; }while(n > 0);
}
}
3.3 for语句
格式:
for(初始化语句;布尔条件式;迭代语句){
//输出打印语句 }
注意:
for(;;)则表示为一条死循环。
实例:
class ForTest {
public static void main(String args[]) {
for(int n=0; n<10; n++)
System.out.println("循环结果: " + n);
}
}
}
3.4 break & continue语句
在任何迭代语句的主体部分,都可用break和continue控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
实例:
public class RecTest {
public static void main(String[] args) {
for(int i=0; i< 10; i++){
if(i==5){
break;
}
System.out.print(i+" ");
}
}
}
//结果
break输出:0 1 2 3 4
continue输出:0 1 2 3 4 6 7 8 9
break会跳出(终止)当前循环。continue是跳出当前循环,开始下一循环
3. 总结
*
(1). 当判断固定个数的值的时候,可以使用if,也可以使用switch。
*
(2). 使用switch,效率相对较高。
switch工作原理:
*
(3). 用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了
就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;
*
(4). break是可以省略的,如果省略了就一直执行到遇到break为止;
*
(5). switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;(1.7之后的可是使用String)
*
(6). default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。
*
(7). 当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
*
(8). while和for可以进行互换。区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
*
(9. break:作用于switch ,和循环语句,用于跳出,或者称为结束。
*
(10). break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
*
(11). continue只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。