第十四届蓝桥杯集训——JavaC组第十三篇——for循环

简介: 第十四届蓝桥杯集训——JavaC组第十三篇——for循环

第十四届蓝桥杯集训——JavaC组第十三篇——for循环


 

for循环(重点)

for循环依然依赖于循环四要素。

和 while 和 do while 循环都不太一样的一种循环结构。

道理是和其他两种一样的,都是循环执行代码的。

语法格式如下:

for (初始值; 表达式; 迭代器) {

   循环体;

}

语法格式示例:

for (int i = 0; i < 10; i++) {
  System.out.println(i);    
}

for循环在一个逻辑表达中体现了除循环体外的其它三要素,这样很大程度上能减少忘记书写迭代器的问题。习惯使用for循环会对你的成长之路有很大的帮助。

for的用法也有很多,各种变化初始值,正序,倒序都可以执行。

倒序迭代器

我们把初始值换成一个较大的数,表达式改成大于0,迭代器的++换成--就能看到倒序输出了。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    for (int i = 10; i > 0; i--) {
      System.out.print(i+",");
    }
  }
}

输出效果:

for循环死循环

我们在整个for使用的语法中可以看到使用的是【;】来区分于初始值、表达式、迭代器三个内容,我们一般控制循环都是会使用循环的三要素来控制,如果没有迭代器的话一般就会执行死循环,但是我们将整个for循环语法写成:

for(;;){}

这样就会变成一个死循环。

for循环示例

暴力循环

暴力计算100以内的所有的偶数和:

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int sum=0;
    for (int i = 1; i < 101; i++) {
      if(i%2==0) {
        sum+=i;
      }
    }
    System.out.println(sum);
  }
}

输出结果:

等差数列求和公式

等差数列求和公式计算100以内的所有的偶数和:

100以内的偶数有2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62、64、66、68、70、72、74、76、78、80、82、84、86、88、90、92、94、96、98、100共50个。

2+4+6+8+…+92+94+96+98+100=(2+100)*50/2,那么,这个公式怎么出来的呢?

等差数列求和公式Sn=[n*(a1+an)]/2,其中初始值a1=2,终止于an=100,n=50,导入公式:

Sn=50*(2+100)/2,整理一下好看点:

等差数列求和公式=(2+100)*50/2=2550

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int a1=2;
    int an=100;
    int n=50;
    int sum=(a1+an)*n/2;
    System.out.println(sum);
  }
}

结果输出:

基础循环展开

循环展开1次,按照偶数的规律修改了迭代器每次i+=(1*2)。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int sum=0;
    for (int i = 2; i < 101; i+=2) {
      sum+=i;
    }
    System.out.println(sum);
  }
}

循环展开2次,循环体中单独添加了一次累计,并按照偶数的规律将迭代器每次i+=(2*2)。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int sum=0;
    for (int i = 2; i < 101; i+=4) {
      sum+=i;
      sum+=(i+2);
    }
    System.out.println(sum);
  }
}

循环展开3次: 循环体中添加了2次累计,并按照偶数的规律累计了i+=(2*3)。

package com.item.action;
public class Main {
  public static void main(String args[]) {
    int sum=0;
    for (int i = 0; i < 101; i+=6) {
      sum+=i;
      sum+=(i+2);
      sum+=(i+4);
    }
    System.out.println(sum);
  }
}

循环的用法是千变万化的,我们还有循环控制语句。

循环控制语句

break结束

我们之前在学习switch语句的时候认识了这个关键字,代表结束的意思,那么它在循环中也是结束的意思,我们来实验一下:

package com.item.action;
public class Main {
  public static void main(String args[]) {
    for (int i = 0; i < 10; i++) {
      if(i==5) {
        break;
      }
      System.out.print(i+"->");
    }
  }
}

示例结果:

continue继续

继续的含义是不结束所有循环,只结束了当前的此次循环,继续进入到下一次循环。

相关文章
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
297 0
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
251 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
251 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
244 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
204 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
215 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
214 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1003 礼物
215 0
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1001 跳马
221 0