(五)java循环语句

文章详细介绍了Java中的四种循环语句:while、do-while、for和foreach,包括它们的语法结构和使用场景。同时提到了break和continue语句在循环中的作用,break用于跳出循环,而continue则是跳过当前循环的剩余部分。
摘要由CSDN通过智能技术生成

        上文说到,Java中一共分为三种语句,顺序语句,分支语句,循环语句。本次简单讲述一下循环语句。

        循环语句的作用主要是用于重复执行一段代码,在java中,循环语句一共分为四种,while循环,do while循环,for循环,for each循环。

while循环

        语法:

while(条件表达式){
    循环体,当条件表达式为true时,执行此处代码
}

        while的语法和if非常相似,不同的地方在于,while后条件表达式结果为true是,开始执行循环体的代码。当循环体执行结束之后,再次判断条件表达式是否为true,如果为true,再次执行循环体的代码,直至条件表达式为false,结束循环。如:

public class While {
    public static void main(String[] args) {
        int i = 0;
        while (i < 5) {
            System.out.println(i);
            i++;
        }
    }
}

        在上述代码中,i=0,条件表达式i<10的结果是true,所以会执行循环体,之后i的值变为1,再次判断,直至i的值变为4,打印i的值,i的值再次自增为5,条件表达式为false,结束循环。所以在控制台上会输出0-4;

do while循环

        do while循环与while循环非常类似,不同之处在于,do while是先执行循环体,再判断条件表达式,语法:

do{
    循环体,条件表达式为true,执行此处代码。
}while(条件表达式);

        由于do while是先执行循环体,再判断条件表达式,所以无论条件表达式的结果是true还是false,do while的循环体至少会执行一遍。

for循环

        语法:

for(表达式1;条件表达式2;表达式3){
    循环体4
}
  • 表达式1用于初始化变量,只执行一次
  • 条件表达式2用于判断是否进行循环
  • 表达式用于修改变量,避免死循环
  • 循环体4,循环要执行的代码。

        其执行顺序是 表达式1创建变量,如果条件表达式2为true,再执行循环体4,执行结束后通过表达式3修改变量,再次判断表达式2,若为true,再次执行循环体4,结束之后通过表达式3修改变量,若表达式2为false,结束循环,所以正确顺序是1243 243 243.。。。。2

        例:打印0-4;

public class For {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
    }
}

for each循环

        for each 循环相当于for循环的增强版本。主要用于数组集合(后面会专门出文章介绍)的遍历,将其元素一个个取出来。

        语法:

for(数据类型 变量名 : 数组){
    循环体
}

注意点:数据类型必须与数组中存放的数据类型相同。

public class ForEach {
    public static void main(String[] args) {
        // chars是一个专门存放char类型数据的数组
        char[] chars = {'a', 'b', 'c', 'd'};
        for (char c : chars) {
            System.out.println(c);
        }
    }
}

break

        break,没错,就是上一篇《分支语句》中介绍过的,switch中出现过,在switch中,break的作用是跳出当前代码块,结束switch语句。

        在循环语句中也是类似的作用,用于跳出当前循环,也就是结束当前循环。

如:

public class Break {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 2) {
                break;
            }
            System.out.println(i);
        }
    }
}

        在上述代码中,如果不考虑break的作用,我们的预期结果是在控制台输出0-4,但是我们在循环体中加入了判断,i是否等于2,如果i的值为2,则执行break语句,跳出循环,最终在控制台上输出的内容就是0 1。

        如果我们的代码中存在循环嵌套,那break的作用就是跳出当前最近的循环,例如:

public class Break {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j == 2) {
                    break;
                }
                System.out.println("i=" + i + "\tj=" + j);
            }
        }
    }
}

        在每一次i的循环里面都有一个j的循环,每次j的值为2时,跳出j的循环,执行i的下一次循环,就会再次进入j的循环,从0开始,到j=2时,再次跳出,所以输出结果就是:

        如果想要跳出外层循环,则需要在外层循环前加一个标签,break 后面加上标签名就可以结束对应的循环了。

public class Break {
    public static void main(String[] args) {
        outSide:
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (j == 2) {
                    break outSide;
                }
                System.out.println("i=" + i + "\tj=" + j);
            }
        }
    }
}

        当i=0,j==2时,跳出最外层的循环,所以i也不会等于1,于是,输出结果就是:

continue

        continue的作用是跳过本次循环,与break不同的是,break是跳出循环,整个循环都会结束。但是continue仅仅是跳过本次循环,所以循环仍然会继续执行。

public class Continue {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            if (i == 2) {
                continue;
            }
            System.out.println(i);
        }
    }
}

        如果不考虑continue语句,我们的预期结果是在控制台输出0-4,但是当i=2时,执行continue语句,跳过本次循环,继续执行后续代码,所以2不会输出在控制台上,控制台上输出的内容是: 0 1 3 4

         同样,在循环嵌套中,continue也只能跳过最近的一层循环,不能影响外层循环,想要影响外层循环,需要在被影响的循环上添加标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值