Java循环结构:for循环

for循环:

控制一段代码反复执行很多次

举个例子:

比如:你去淘宝搜索手机,是不是会显示上千上万部手机?那么不可能说一条一条去写这样的代码吧?肯定不会这么干,所以,就有了循环结构这个东西,将一段代码反复执行很多次。

格式:
for (初始化语句; 循环条件; 迭代语句) {
    循环体语句(重复执行的代码);
}

示例:
// 输出3次HelloWorld
for (int i = 0; i < 3; i++) {
    System.out.println("Hello World");
}

for的执行流程:

例:

    for (int i = 1; i <=5; i+=2) {
        System.out.println("hello,world");

    }

    /*流程解析:
      i 第一次循环,因为i=1,所以符合i<=5,为true,继续循环
      i 第二次循环,因为i=1,此时i+=2等价于i=i+2; 结果为3,所以i=3,符合i<=5,为true,继续循环
      i 第三次循环,因为i=3,此时i+=2等价于i=i+2; 结果为5,所以i=5,符合i<=5,为true,继续循环
      i 第四次循环,因为i=5,此时i+=2等价于i=i+2; 结果为7,所以i=7,不符合i<=5,为false,结束循环

for循环案例:求和

需求:求1——5之间的数据和,并把求和结果再控制台输出。

        //需求:求1-5之间的和,并把求和结果在控制台输出。
        int sum =0;             //定义变量sum,初始值为0,用作存放求和结果。
        for (int i=1;i<=5;i++){         //将1-5之间的数字累加起来求和
            sum+=i;            //等价于sum=sum+i

        }
        System.out.println("总和:"+sum);

 首先进入for循环:
i 的第一次循环,i=1,符合i<5,sum += i 等价于 sum = sum + i 等价于 sum = 0 + 1,所以将 1 重新赋值给变量sum,继续循环;
 i 的第二次循环,i=1+1 = 2,符合i<=5,sum += i 等价于 sum = 1 + 2,所以将 3 重新赋值给变量sum,继续循环;
 i 的第三次循环,i=2+1 = 3,符合i<=5,sum += i 等价于 sum = 3 + 3,所以将 6 重新赋值给变量sum,继续循环;
 i 的第四次循环,i=3+1 = 4,符合i<=5,sum += i 等价于 sum = 6 + 4,所以将 10 重新赋值给变量sum,继续循环;
i 的第五次循环,i=4+1 = 5,符合i<=5,sum += i 等价于 sum = 10 + 5,所以将 15 重新赋值给变量sum,继续循环;
i 的第六次循环,i=5+1 = 6,不符合i<=5,判断为false,结束循环。
目前 sum 的值已经累加到了 15,所以此时 sum=15;
所以最后在控制台输出sum的值就为15

for循环案例:求奇数和

需求:求1——10的奇数和,并把求和的结果在控制台输出。

       //需求:求1~10之间的奇数和,并把求和结果在控制台输出
        int sum =0;
        for (int i=1;i<=10;i++){
            if (i%2==1){
                sum+=i;
            }
        }
        System.out.println("1~10之间的奇数和为"+sum);

 i 的第一次循环,i=1,符合i <= 10,然后进行if判断:1 % 2 是 余 1,所以i=1是奇数,
则sum+=i等价于sum = sum + i 等价于 sum = 0 + 1,因此将1重新赋值给sum,继续循环

 i 的第二次循环,i=1+1 = 2,符合i <= 10,if判断:2 % 2 是 余 0,所以i=2不是奇数,
则sum的值不进行累加,继续循环

i 的第三次循环,i=2+1 = 3,符合i <= 10,if判断:3 % 2 是 余 1,所以i=3是奇数,
则sum+=i等价于sum = 1 + 3,因此将4重新赋值给sum,继续循环

 i 的第四次循环,i=3+1 = 4,符合i <= 10,if判断:4 % 2 是 余 0,所以i=4不是奇数,
则sum的值不进行累加,继续循环

i 的第五次循环,i=4+1 = 5,符合i <= 10,if判断:5 % 2 是 余 1,所以i=5是奇数,
则sum+=i等价于sum = 4 + 5,因此将9重新赋值给sum,继续循环

i 的第六次循环,i=5+1 = 6,符合i <= 10,if判断:6 % 2 是 余 0,所以i=6不是奇数,
则sum的值不进行累加,继续循环

i 的第七次循环,i=6+1 = 7,符合i <= 10,if判断:7 % 2 是 余 1,所以i=7是奇数,
则sum+=i等价于sum = 9 + 7,因此将16重新赋值给sum,继续循环

 i 的第八次循环,i=7+1 = 8,符合i <= 10,if判断:8 % 2 是 余 0,所以i=8不是奇数,
 则sum的值不进行累加,继续循环

 i 的第九次循环,i=8+1 = 9,符合i <= 10,if判断:9 % 2 是 余 1,所以i=9是奇数,
则sum+=i等价于sum = 16 + 9,因此将25重新赋值给sum,继续循环

 i 的第十次循环,i=9+1 = 10,符合i <= 10,if判断:10 % 2 是 余 0,所以i=10不是奇数,
则sum的值不进行累加,继续循环

 i 的第十一次循环,i=10+1 = 11,不符合i <= 10,判断:false,结束循环

因此sum的值最终累加到25,最终在控制台输出的1~10奇数和是25

方法2

        int sum = 0;
        for (int i = 1; i <=10; i+=2) {
            sum+=i;

        }
        System.out.println("奇数和为"+sum);

进入for循环:
 i 的第一次循环,i=1,符合 i <= 10,sum2+=i 等价于 sum2 = sum2 + i 等价于 sum2 = 0 + 1,
 则将1重新赋值给sum2

i 的第二次循环,i=1+2 = 3,符合i<=10,sum2+=i 等价于 sum2 = 1 + 3,
则将4重新赋值给sum2

i 的第三次循环,i=3+2 = 5,符合i<=10,sum2+=i 等价于 sum2 = 4 + 5,
则将9重新赋值给sum2

i 的第四次循环,i=5+2 = 7,符合i<=10,sum2+=i 等价于 sum2 = 9 + 7,
则将16重新赋值给sum2

i 的第五次循环,i=7+2 = 9,符合i<=10,sum2+=i 等价于 sum2 = 16 + 9,
则将25重新赋值给sum2

i 的第六次循环,i=9+2 = 11,不符合i<=10,判断为false,结束循环。

因此最终sum2的值累加到25,最终控制台输出的1~10奇数和是25
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的for循环是一种通用的循环结构,支持迭代。它是最有效、最灵活的循环结构之一。for循环执行的次数在执行前就已经确定。for循环的语法格式如下: ``` for(初始化; 布尔表达式; 更新) { //代码语句 } ``` 其中,初始化语句在循环开始前执行一次,布尔表达式在每次循环开始前被求值,如果为true,则执行循环体语句,否则跳过循环体语句,执行更新语句,然后再次对布尔表达式求值。循环体语句执行完毕后,控制流程返回更新语句,然后再次对布尔表达式求值。这个过程不断重复,直到布尔表达式的值为false为止。 下面是一个计算0-100之间的奇数和、偶数和的例子: ``` public class Demo07 { public static void main(String[] args) { int o = 0; int j = 0; for (int i = 0; i <= 100; i++) { if (i % 2 == 0) { o = o + i; } else { j = j + i; } } System.out.println("偶数和为:" + o); System.out.println("奇数和为:" + j); } } ``` 除了普通的for循环Java还引入了一种增强for循环,主要用于数组或集合的遍历。增强for循环的语法格式如下: ``` for (声明语句 : 表达式) { //代码句子 } ``` 其中,声明语句声明一个新的局部变量,该变量的类型必须和数组元素的类型匹配。表达式是要访问的数组名或返回值为数组的方法。增强for循环会依次遍历数组中的每个元素,并将其赋值给声明语句中的变量。 下面是一个遍历数组元素的例子: ``` public class Demo07f { public static void main(String[] args) { int[] a = {10, 20, 30, 40}; //遍历数组的元素 for (int j : a) { System.out.println(j); } } } ``` 除此之外,for循环还可以用来输出一定范围内满足某个条件的数,例如输出1-1000之间能被5整除的数,并且每行输出3个: ``` public class Demo077 { public static void main(String[] args) { for (int i = 0; i <= 1000; i++) { if (i % 5 == 0) { System.out.print(i + "\t"); } if (i % (5 * 3) == 0) { System.out.println(); } } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值