• Java初学者:for循环介绍


    本章节,我们介绍java里的循环,在开始本章节之前,先给大家提出一个问题,比如说,我让你用print显示出10条"Hello baby"的信息,你会怎么做呢? 从我们以前所学的知识来看,这很简单,只需要System.out.println("Hello baby");十次即可。但是我让你显示出100次甚至更多呢? 也许你说我是无理取闹,是的,这个问题本身并没有实际的意义,但是这样的问题实际上就是:多次执行相同或者有一定规律的操作。在这种时候,我们需要用到循环。只从语义来讲,循环就是do it again and again对吧?但是怎么来做呢?

        java里有两种循环,for循环和while循环,本次,我们先来介绍for循环。

        for循环里有两种,普通for循环和for each循环,后者是java后来加上去的,原本是没有的。先说普通for循环:

        普通for循环的格式是这样的:

        for(初始化条件(一般为数据的初始化); 判断条件(一般与前面初始化的数据有关); 条件改变(一般改变那个数据))

        {执行的操作}(如果执行的操作只有一条语句,花括号可以省略掉,但是建议初学者不要这么做,容易把自己弄糊涂。)

        那么,上面这个for循环是怎么执行的呢? 我们来写个小程序,来说明一下这个问题:

    你看,我们打印出了10条Hello baby!对吧?但是到底发生了什么呢?下面我们详细解释一下,

    for(int i = 0; i < 10; i ++)

    {

            System.out.println("Hello baby!");

    }

    i是一个整型数据,在for循环的最最开始,它被定义并初始化为0,然后判断它是否小于10,如果小于10,那么执行

    for后面花括号里的操作,如果不小于10,直接退出循环。我们的i目前等于0,所以,执行了操作,打印出了一个"Hello baby!",然后呢? 然后程序将跳转回for后面的圆括号那行,但是,java将从右往左执行,就是说,先执行   i ++,这个是i自加1的意思,于是,我们的i变成了1,然后判断,i < 10是否为真?为真,因为i现在等于1,既然为真,那就继续跳转进花括号进行操作,于是又打印出一条"Hello baby",然后再跳转到圆括号那里,i ++,i变成2,然后再打印出信息,知道i等于9之后,i++,这次变成了10,i < 10这次为false了,将不再进入花括号执行操作,而是跳出循环,我们这个程序,只有一个for循环,跳出此循环,程序就结束了。

        这个例子也许没什么实际的意义,那么我们这里来看看有点儿实际意义的。 著名的数学家高斯,在10岁那年,用较短的时间,轻松的算出了1+2+3+...+100 = 5050, 使得他的老师彪特奈尔异常激动,意识到自己发现了一个天才。我们现在知道,当年高斯的算法是第一个数加上最后一个数是101,第二个数加上倒数第二个也是101,一共有50对这样的加法,最后得到5050,那么如果我们用java的for循环来做呢? 我们在此用两种方法,一种是1+2+...+100,另一种就是模拟高斯的做法,程序代码如下:

    你看,结果是相同的是吧,哎,如果当年有java,那轮得到高斯在那儿装啊? 就算用笨办法也比他做的快啊。可惜啊,当懒惰的Patrick Naughton在1990年12月大声抱怨C++的时候,距离高斯算出5050这个数字已经213年了。

        以上便是普通的for循环,一般来说,for循环经常控制某些操作的执行次数,所以,多数情况下,会对整形数据进行初始化和自加操作。但这不是绝对的,for循环可以很灵活的,比如下面的例子:

    这个例子打印出Thinking in JAVA,但是每次都少打一个字母,这有些像"我顿时凌乱了, 顿时凌乱了,时凌乱了,凌乱了,乱了,了”, 对吧,这个小程序用到了String的基本操作,我们还没有涉及到。不过这没关系,我只是说,普通for循环的格式是死板的,但是使用for循环的人是灵活的。

        我们今天就说到这里吧,虽然我本来还想说说for each循环,但是那必然会涉及到数组的问题,而我们还没有说到数组,所以for each循环我们留到后面再说吧。

  • 相关阅读:
    c++ 单例模式
    c++ 时间格式化
    c++ read
    c++ 时间与字符串转换
    c++ switch case
    HIVE Transform using 用法
    python安装模块
    pip install psutil出错-You are using pip version 10.0.1, however version 18.0 is available.
    centos下安装Loadrunner
    svn-checkout后,循环遍历查找包含某字符串的文件
  • 原文地址:https://www.cnblogs.com/entry-android/p/5538829.html
Copyright © 2020-2023  润新知