笔记23 | 复习for/while/do...while的几种循环用法

一.for循环遍历数组的传统方式

/*
         * 循环1:循环int数组方法一
         */
        int[] i = {1,2,3,4,5};
        for (int j = 0; j < i.length; j++) {
            int it = i[j];
            Log.i("md", "循环1打印结果:"+it);
        }

打印结果:

01-01 00:05:25.133: I/md(1651): 循环1打印结果:1
01-01 00:05:25.133: I/md(1651): 循环1打印结果:2
01-01 00:05:25.133: I/md(1651): 循环1打印结果:3
01-01 00:05:25.133: I/md(1651): 循环1打印结果:4
01-01 00:05:25.133: I/md(1651): 循环1打印结果:5

二.for循环遍历数组的第二种方法

不严格的说,Java的第二种for循环基本是这样的格式: for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体 借助这种语法,遍历一个数组的操作就可以采取这样的写法:

/*
         * 循环2:循环int数组方法二
         */        int[] i = {1,2,3,4,5};
        for(int it : i){
            Log.i("md", "循环2打印结果:"+it);
        }

打印结果:

01-01 00:05:25.133: I/md(1651): 循环2打印结果:1
01-01 00:05:25.133: I/md(1651): 循环2打印结果:2
01-01 00:05:25.133: I/md(1651): 循环2打印结果:3
01-01 00:05:25.133: I/md(1651): 循环2打印结果:4
01-01 00:05:25.133: I/md(1651): 循环2打印结果:5

三.for循环遍历Collection对象的传统方式

对for( init; 条件; increment )解释: 首先,init先会被执行,而且就这一次。你可以在这里初始化你要的循环变量。这里也可以空白,只要有分号就行。然后,就去判断条件,如果条件为真,就执行for中的代码。如果为假,就跳出for循环,执行循环外下面的语句。在执行完一次循环主体之后,会来到increment语句,increment允许你进行变量的更新(也可以留空)。最后将会再一次判断条件,如果为真,就执行循环,如果为假,循环终止。

/*
         * 循环3:循环string数组方法一
         */
        String[] s = {"a","b","c","d","e"};
        Collection collection = java.util.Arrays.asList(s);
        for(Iterator iterator = collection.iterator(); iterator.hasNext();){
            Object str = iterator.next();
            Log.i("md", "循环3打印结果:"+str);
        }

打印结果:

01-01 00:05:25.133: I/md(1651): 循环3打印结果:a
01-01 00:05:25.133: I/md(1651): 循环3打印结果:b
01-01 00:05:25.133: I/md(1651): 循环3打印结果:c
01-01 00:05:25.133: I/md(1651): 循环3打印结果:d
01-01 00:05:25.133: I/md(1651): 循环3打印结果:e

四.for循环遍历Collection对象的第二种方法

第二种遍历Collection的简单方式: for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体 借助这种语法,遍历一个数组的操作就可以采取这样的写法:

/*
         * 循环4:循环string数组方法二
         */
        for(Object ob : collection){
            Log.i("md", "循环4打印结果:"+ob);
        }

打印结果:

01-01 00:05:25.133: I/md(1651): 循环4打印结果:a
01-01 00:05:25.133: I/md(1651): 循环4打印结果:b
01-01 00:05:25.133: I/md(1651): 循环4打印结果:c
01-01 00:05:25.133: I/md(1651): 循环4打印结果:d
01-01 00:05:25.133: I/md(1651): 循环4打印结果:e

五.while循环

只要所设定的条件为真,while循环就会一直重复执行while循环中的代码。

/*
         * while循环
         */
        int iw = 5;
        while (iw>0)//判断条件
        {
            iw --;
            Log.i("md", "while循环打印结果:"+iw);
        }

打印结果:

01-01 00:05:25.134: I/md(1651): while循环打印结果:4
01-01 00:05:25.134: I/md(1651): while循环打印结果:3
01-01 00:05:25.134: I/md(1651): while循环打印结果:2
01-01 00:05:25.134: I/md(1651): while循环打印结果:1
01-01 00:05:25.134: I/md(1651): while循环打印结果:0

六.do...while循环

do...while的特点是在语句的最后面对条件进行判断,和while不同的是do...while一定会保证循环能执行一次。

/*
         * do...while循环
         */
         int idw = 5;
        do {
            idw --;
            Log.i("md", "do...while循环打印结果:"+idw);
        } while (idw>0);//判断条件

打印结果:

01-01 00:05:25.134: I/md(1651): do...while循环打印结果:4
01-01 00:05:25.134: I/md(1651): do...while循环打印结果:3
01-01 00:05:25.134: I/md(1651): do...while循环打印结果:2
01-01 00:05:25.134: I/md(1651): do...while循环打印结果:1
01-01 00:05:25.134: I/md(1651): do...while循环打印结果:0

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2017-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C语言及其他语言

【每日一题】问题 1117: K-进制数

考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.

912
来自专栏云霄雨霁

Java 对象初始化顺序

1288
来自专栏C/C++基础

C++11委托构造函数

委托构造函数(Delegating Constructor)由C++11引入,是对C++构造函数的改进,允许构造函数通过初始化列表调用同一个类的其他构造函数,目...

911
来自专栏数据处理

python中的字符数字之间的转换函数

1608
来自专栏海天一树

小朋友学C语言(22):循环

C语言有三种循环方式,除了前面讲过的for循环外,还有while和do while两种形式。 (一)while循环 #include <stdio.h> in...

3239
来自专栏程序生活

Java学习(二)Static关键字的理解

在讲Static之前,引入一个小题 ? 答案为“c” ? 运行结果 Cannot make a static reference to the non-stat...

3738
来自专栏待你如初见

Day08

1193
来自专栏互联网杂技

简单理解通过原型继承

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head>...

3105
来自专栏大闲人柴毛毛

三分钟理解“原型模式”——设计模式轻松掌握

原型模式的官方定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 大白话: 现在有一个类,它要产生大量的对象,而且这些对象中的属性值大部分...

32814
来自专栏开发与安全

面向对象编程风格 VS 基于对象编程风格(boost::bind/function)

本文主要通过实现Thread 类来展现两种编程风格的不同点。 很多人没有区分“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)缺...

2300

扫码关注云+社区