重构Java基础 (三) | 程序控制

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只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

第一篇:重构Java基础 (一)| 了解java & java中的常量与变量

第二篇:重构Java基础 (二)| 浅谈运算符

猜你喜欢

转载自blog.csdn.net/weixin_43853746/article/details/107728239