自学Java27

94 阅读2分钟

引言

  • 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。

java-流程控制 5

for循环

  • for循环感觉可以说是,对许多语言都是非常常用的循环方法(只是感觉Java的for没有python的简洁)
for (初始条件; 循环检测条件; 循环后更新计数器) {
    // 执行语句
}
  • 老熟人,使用for循环实现1-100累加和
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i=1; i<=100; i++) {
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

  • 和while循环相比,for循环把更新计数器的代码统一放到了一起,那在for循环的循环体内部,就不需要去更新变量i了,这样其实也是有利有弊吧,看具体场景需求
  • 升级用法,比如搭配数组使用循环计算数组内数值的累加和
public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };// 数组的最简洁写法
        int sum = 0;
        for (int i=0; i<ns.length; i++) {
            System.out.println("i = " + i + ", ns[i] = " + ns[i]);
            sum = sum + ns[i];
        }
        System.out.println("sum = " + sum);
    }
}

  • 注意上面每行其实都是使用+进行字符串拼接的结果
  • 注意i<ns.length不要写等于,不然就会出现如下情况

  • 原因也很简单,提示已经很明了了,超过索引下标,因为小于等于的话就会取到数组的长度5,而数组的索引是从0开始的,长度和索引值是差1的,所以不取等号才刚好能便利5次,拿到所有的索引
  • 关于for循环的一些细节问题下一篇再详细介绍。