Java基础复习-流程控制篇

Java基础复习-流程控制篇,第1张

流程控制
  • Java基础复习-流程控制篇
    • 分支结构
      • 条件语句(if)
      • 多分支语句(switch)
    • 循环结构
      • for循环结构
      • while循环结构
      • do-while循环
      • 嵌套循环
      • 循环结构对比总结

Java基础复习-流程控制篇

分支结构

分支结构可分为条件语句( if 结构/ if-else 结构)和多分支语句(switch-case结构)

条件语句(if)

在Java中,条件语句的形式可为:

if(条件判断表达式){ statement1; statement2;}

具体代码体现为:

int x = 10;
//x > 0,作为if语句中的条件表达式
if(x > 10){   
    // 输出语句作为代码块里的方法体statement
    System.out.println("x比10大");
}

此外,if 语句可以和 else 搭配使用,构成 if-else 语句,格式如下:

if(条件表达式){
    statement1;
}else{
    statement2;
}

具体代码体现为:

int x = 10;
if(x > 10){
    System.out.println("x比10大");  //statement1;
}else{
    System.out.println("x比10小");  //statement2;
}

由 if 语句也可构成多分支结构,主要体现为:

if(条件表达式1){
	statement1;
}else if(条件表达式2){
	statement2;
}else if(条件表达式3){
	statement3;
}
....................

代码实例:

int x = 85;
if(x >= 80){
    System.out.println("优秀");
}else if(x >= 60){
    System.out.println("及格");
}else if(x >= 0){
    System.out.println("不及格");
}else{
    System.out.println("成绩错误");
}

说明

  • if 语句中else是可选的,且else遵循就近原则,会和最邻近的 if 构成一组。
  • 针对if - else if 形成的多分支语句,我们需要注意以下几点:
    • 如果多个条件表达式之间是"互斥"关系(没有交集),则整个判断和执行语句之间的顺序是可以放置,不考虑先后。
    • 如果多个条件表达式之间存在有交集的关系,比如上面的if-else if代码实例,我们需要考虑语句之间的放置顺序,不能够把x > 0放在x > 60上面,同理x > 60也不能放在x>80上面。
    • 如果多个条件表达式之间存在包含关系,通常情况下,我们会将范围小的条件语句放在范围大的上面,避免范围小的语句出现不执行不判断的现象。

多分支语句(switch)

在处理多个选项时,如果我们使用if语句,会显得有些麻烦冗余,所以这里提供了另一种语句结构switch语句:

switch(choice){
    case 常量1:
        statement1;
        break;
    case 常量2:
        statement2;
        break;
    .......
    case 常量n:
     	statementn;
        break; 
    default:
}

代码实例:

int x = 3; 
switch (x){
    case 1:
        System.out.println(1);
        break;
	case 2:
		System.out.println(2);
		break;
	case 3:
		System.out.println(3);
		break;
	default:
        System.out.println("除此之外");
}

代码流程介绍:switch语句将从与选项值匹配的case标签开始执行,直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,但存在default语句,就会执行此语句下的方法体。

注意

  • 当调用完执行语句statement时,如果没有遇到break语句,程序会继续向下执行,执行下面的其他case语句,直到遇到break语句或程序执行到末尾结束。
  • break语句,表示执行到此关键字,就跳出此switch-case结构。
  • switch结构中的choice表达式,只能是:byte、short、char、int、枚举类型(jdk5.0新增)、String类型(jdk7.0新增)
  • case之后只能声明常量,不能声明一个范围。
  • break关键字是可选择的。
  • default语句,相当于if-else语句中的else,但其位置是可变的,表示除此之外。

循环结构 for循环结构

for循环语句是支持迭代的一种通用结构,由一个计数器或类似的变量控制迭代次数,每次迭代后这个变量将会更新。具体结构为:

for(初始化条件;循环条件;迭代条件){
    循环体;
}
//执行流程为:初始化条件 -> 循环条件 -> 循环体 -> 迭代条件 -> 循环条件 -> 循环体 -> 迭代条件
//以此类推,直到不能满足循环条件为止,循环结束

代码实例:

for (int z = 0; z < 10; z++){
	System.out.println(z);
}
//程序结果:依次输出0~9

说明

  • 如果我们在for循环内部定义一个变量,那么这个变量是不能在此循环体外面被使用的。
  • 如果我们编写了多个并列for循环,可以在不同的for循环里定义同名的变量。
  • for循环只是while循环的一种简化形式。
  • for循环还具有一种“泛型for循环”(for each循环/增强for循环),是jdk5.0新增的一种循环结构。
    • for(元素类型 变量名 : 数组或集合对象){ //对每个变量进行 *** 作,方法体 }

while循环结构
初始化条件
while(循环条件){
	循环体;
	迭代条件;
}
//while循环流程基本和for循环结构一致
//for循环和while循环可以相互转换

代码实例:

int sum = 0;
while (sum < 10){
	System.out.println(sum);  //循环程序结果:0~9
	sum++;
}

说明:一般对于while循环的使用,我们要注意迭代条件的书写,避免出现死循环导致程序不能结束。


do-while循环

由上面两种循环可知,在程序进入循环体结构前需要进行迭代条件的判断,所以程序可能在一开始就进不去循环,满足不了迭代条件,循环体代码一次都没有实现。如果我们希望循环体代码至少执行一次,就需要使用do-while循环。其结构为:

初始化条件;
do{
    循环体;
    迭代条件;
}while(循环条件);
//循环流程为:初始化条件 -> 循环体 -> 迭代条件 -> 循环条件 -> 循环体 -> ....
//由此可知,该循环至少会执行一次循环体和迭代条件语句

代码实例:

int sum = 0;
do {
	System.out.println(sum);
	sum++;
}while(sum<0);
//程序执行结果为 0

嵌套循环

体现:将一个循环结构A声明在另一个循环结构B的循环体中,构成嵌套循环

此时外层循环表现为:B,内层循环表现为:A

说明

  • 内层循环结构遍历一遍,相当于外层循环结构遍历一次
  • 假设外层循环需要执行m次,内层循环需要执行n次,则此时内层循环体总共执行了m*n次。

循环结构对比总结
  1. 开发中,我们基本会从for、while循环结构中进行选择,实现循环结构。
  2. for循环和while循环是可以相互进行转换的。(初始化条件部分,变量作用范围可能不同)
  3. 在编写循环体结构时,要避免出现死循环。

“无限循环”

对于“无限循环”的使用,我们在开发过程中可能会经常用上,所以在这里提供两种“无限循环”结构:

  1. for( ; ; ){}
  2. while(ture){}

结束循环的几种情况

  1. 当循环条件判断为false时,程序自动结束循环。
  2. 程序在循环体中执行到break语句时,跳出此循环,循环结束。

流程结构中常用关键字

  1. break关键字
    • 用于switch-case选择结构中时,表示结束程序向下执行。
    • 用于循环结构中时,表示结束当前循环。
  2. continue关键字
    • 用于循环结构中,表示结束当前此次循环,进入下一次循环。

对于关键字的使用,有以下几点需要我们注意:

  1. 关键字后面不能再编写执行语句,编译不通过。
  2. 循环体中关键字都遵循就近原则,和最邻近的循环结构相匹配。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/876625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存