选择结构&循环&循环控制语句

275 阅读4分钟

java基础巩固:选择结构、循环、循环控制语句理解

选择结构

选择结构中可分为ifswitch两种


if结构

**注意:**if括号内的条件的结果必须为boolean类型


if语句

满足条件,执行功能语句

if(条件){
	功能语句
}

if...else if 语句

条件1和条件2互斥,可能并不包含所有情况

if(条件1){
	功能语句
}else if(条件2){
	功能语句
}

if...else 语句

if和else的执行条件互斥,并且包含所有情况,不满足条件1就执行else内的语句

if(条件1){
	功能语句
}else{
	功能语句
}

if...else if...else 语句

条件1、条件2、else互斥,并且包含所有情况

if(条件1){
	功能语句
}else if(条件2){
	功能语句
}else{
	功能语句
}

switch结构

以下是关于使用switch结构的注意事项

  • key:byte、short、char、int、枚举、String类型的变量或者常量(从java 1.7开始,支持String类型)
  • value:和key同种类型值,表示key的可能值
  • case 语句可以有无数个
  • 当key和value相等的时候,执行对应case中的功能语句,然后寻找第一个break,跳出选择结构
    • 所以为了避免不必要的错误,尽量每个case项中都写一个break;语句,default项同样如此
  • 如果key和value没有匹配的值,则执行default中功能语句
  • 如果没有找到break,会一直找到选择结构结尾,自动跳出选择结构
switch(key){
    case value1 :
        功能语句;
        breakcase value2 :
        功能语句;
        break;
           	...
    default :
        功能语句
        break;
}

当使用枚举类型时,不需要每个标签带枚举名,可以由switch表达式推出类型,直接调用枚举字段就行 例:

/**
 * 定义尺寸枚举
 */
public enum Size {
    SMALL,MEDIUM,LARGE,EXTRA_LARGE
}

测试:

public class Main {
    public static void main(String[] args) {
        Size s = Size.SMALL;
        switch (s){
            case SMALL://可以直接使用枚举字段,不需要使用Size.SMALL
                System.out.println("小号尺寸");
                break;
            case MEDIUM:
                System.out.println("中号尺寸");
                break;
            case LARGE:
                System.out.println("大号尺寸");
                break;
            case EXTRA_LARGE:
                System.out.println("超大号");
                break;
            default:
                System.out.println("无该尺寸");
                break;
        }
    }
}

结果:

image.png


循环结构

循环表示重复的做一件事情,java中循环结构亦是如此,表示在指定条件下可以重复执行某些代码

**注意:**循环需要有出口,没有出口就是死循环,因此需要在循环结构中不断的改变条件

在Java中,主要有一下几种循环结构:

  • while语句
  • do...while语句
  • for...语句

while结构

  • 条件为布尔类型的值或者表达式,条件满足,则执行循环体中功能语句
  • 功能语句执行后,继续判断条件,满足条件继续执行,直到条件不满足为止
while (条件){
	功能语句
}

do...while结构

  • 先执行do循环体中的功能语句,再去判断while中的条件是否满足
  • 如果满足条件继续执行do中功能语句,直到条件不能满足为止

**注意:**do...while结构至少会执行一次功能语句

do{
	功能语句
}while(条件);

for结构

for(A;B;C;){
    D;
}
A:初始化语句
B:判断条件
C:循环后语句
D:功能语句
执行顺序:
第一次:A-->B-->D-->C
第二次:B-->D-->C
...
第N次:B中条件不满足的时候跳出循环

示例1:

for(int i = 1;i <= 10;i++){
	功能语句
}

示例2:嵌套循环

for(int i = 1;i <= 10;i++){
	for(int j = 1;j <= 10;j++){
		功能语句
	}
    功能语句
}

foreach循环

foreach循环又称增强for循环,适用于不使用索引的场景

语法:

for(源中的数据类型 变量名:数据源){
	功能语句;
}

示例1:

int[] arr = {1,2,3};
for (int i:arr) {
    System.out.println(i);
}

示例2:嵌套循环

int[][] arr = {{1,2},{3,4},{5,6}};
for (int[] i:arr) {
    for (int j:i) {
        System.out.println(j);
    }
}

循环控制语句

循环控制语句顾名思义就是可以可以对循环语句进行控制的语句,有分为以下三种控制语句:

  • break:跳出当前循环,如果指定了锚点,那就可以跳出锚点对应的循环
test:for(int i = 1 ; i <= 5 ; i++){
   for(int j = 1 ; j <= 5 ; j++){
       System.out.println("j" + j);
       if(j==3){
       	   //跳出test锚点标识循环
           break test;
       }
   }
}
  • continue:跳出当层循环,即跳出当前这次循环
  • return:终止当前方法