# java学习记录(流程控制3)

循环结构

java循环结构包含:while循环、do while循环、for循环。


while 循环

while循环的语法格式为:
while(表达式){
循环内容
}
其中只要表达式的最终返回值为真,那么就会一直执行循环内容,只有当表达式为假时,才会停止循环。
如下,计算1+2+3+4+…+100的值:

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

第一次循环
刚开始会判断i<100是否成立。
由于定义的i=0,所以i<100是成立的。

然后执行循环语句:
i++;
a=a+i;
此时,i++执行完后,i的值就由0变为了1,
然后执行 a=a+i;即a=0+1;
执行完后a的值就变为1;

第二次循环
循环内容执行完毕后,再次判断while的表达式是否为真。
由于此时,i的值为1,所以1<100依然成立。

所以将会继续执行循环语句:
i++;
此时,i的值就变为了2
a=a+i; 即 a=1+2;
此时a的值就变为了3。

循环语句执行完毕后,再次判断while表达式是否为真。

直至i加到100,即循环语句执行了100次后,a<100就不成立了。此时,就不在执行循环语句。
且1+2+3+…+100刚好运算完毕。
最终执行 System.out.println(a); 将结果输出。
结果为:
在这里插入图片描述


do…while 循环

do…while循环的语法格式为:
do{
循环内容
}while(表达式);

继续利用 do…while语句计算1+2+3+…+100。
如下:

public class sequence_learning3 {
    public static void main(String[] args) {
       
       int b=0;
        int sum=0;
        do{
            b++;
            sum=sum+b;
        }while(b<100);
        System.out.println(sum);
    }

第一次循环
首先,会先执行循环内容:
b++;
此时,b就由0变成1。
sum=sum+b; 即sum=0+1。
此时sum的值就变为1
然后再判断表达式是否成立。

由于b的值为1,所以while的表达式b<100成立。

第二次循环
所以将会继续执行循环内容:
b++;
此时,b的值就有1变为了2。
sum=sum+b; 即sum=1+2。
此时sum的值就由1变为了3.
然后再判断表达式是否成立。

由于b的值为2,所以while的表达式b<100成立,
所以还将会继续执行循环语句。
直至b的值变为100,即循环语句执行100次后,i<100就将不成立。
便会结束循环,此时1+2+3+…+100也刚好计算完毕。
最终结果为:
在这里插入图片描述

do…while 与while循环的相同点:
都是当while语句后的表达式为真时,才会重复执行循环内容。
只有当表达式为假时,才会停止执行循环内容。

do…while 与while循环的不相同点:
while循环是先判断表达式再循环。
do…while是先执行循环语句,再判断表达式。
所以,while循环时,只要一开始表达式就不成立,那么就一次也不会执行循环语句。
而do…while循环时,即使一开始表达式不成立,循环语句也会执行一次。


for 循环

for循环的语法格式为:
for(初始化语句;循环条件判断表达式;循环条件更迭表达式)
{
循环内容
}

用for循环计算1+2+3+…+100
如下:

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

    }
}

定义sum为最后的总和。
进入for循环时

第一次循环
首先
int i=0;
执行初始化语句。
定义一个更迭对象:变量 i,并将其初始值赋为0。
更迭对象 i 的值,每经过一次循环后,其值都会发生一次变化,变化的量由 循环条件更迭表达式 决定。

然后
i<=100;
执行循环条件判断表达式
当然,由于i此时等于0,所以条件成立。

之后
sum=sum+i;
执行循环内容
由于此时sum=0,且i=0。
所以sum=0+0;

最后
i++;
执行循环条件更迭表达式
i由0增为1。

第二次循环
直接执行 循环条件判断表达式
此时,由于i值已经更迭,由0更迭为1。
所以判断i<=100依然成立。

然后继续执行循环内容
sum=sum+i;
由于sum的值为0
所以 sum=0+1
此时sum的值变为1

最后执行循环条件更迭表达式
i++;
i自增1,此时i的值变为2。

之后再次重复 第二次循环的步骤,直至 循环条件判断表达式 不成立,最终跳出循环,输出sum的最终结果。

最终结果为:
在这里插入图片描述
因此,在for循环时,初始化语句只用在第一次循环时执行一次,之后就不再执行。
for 循环的 初始化语句 可以为空语句
如下:在这里插入图片描述

将for循环的初始化语句移出到外面,程序依然可以正常执行。
也就是说,for循环里的语句,可以为 空语句。
例如:
在这里插入图片描述
写入空语句,虽然程序不会报错,但是将会陷入死循环。通常情况下,应避免程序进入死循环。
当然,for语句的循环次数是已知的。
例如写入:

100.for

后加 回车
在这里插入图片描述
idea会自动帮你生成 执行100次的 for循环语句。
大大提升了工作效率。


增强for循环

JDK5中加入了针对数组和集合的 增强for循环。
增强for循环是针对数组或集合进行操作的。
格式如下:
for(声明变量:数组名)
{
代码段
}

其中,声明变量的类型必须和数组的变量类型一样。
例:
定义一个整形数值,并依次输出该数组的元素。

public class sequence_learning6 {
    public static void main(String[] args) {
        int arr[]={10,13,11,6,3,0};
        for(int num:arr)
        {
            System.out.println(num);
        }
    }
}

最终结果为:
在这里插入图片描述
如果要用普通的for循环,那么就应该如此写:

public class sequence_learning6 {
    public static void main(String[] args) {
        int arr[]={10,13,11,6,3,0};
        for(int i=0;i<arr.length;i++)
        {
            System.out.println(arr[i]);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值