笔记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 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

聊聊HystrixThreadPool

hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java

771
来自专栏Pulsar-V

Save Camera Document

#pragma once #include "HCCamera.h" #include <time.h> #include <cstdio> #incl...

2828
来自专栏前端儿

Web 前端颜色值--字体--使用,整理整理

颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义。对光源进行设置的最低值可以是 0(十六进制 00)。最高值是 2...

2282
来自专栏WOLFRAM

错觉艺术的巅峰,错觉图形大师M.C. Escher的不可能方块的可能模型

1333
来自专栏Ryan Miao

ehcache报错

jfinal2.0+tomcat7+ehcache2.6.11+Linux Linux version 2.6.18-164.el5 (mockbuild@x8...

3729
来自专栏linux驱动个人学习

高通msm8909耳机调试

1、DTS相应修改: DTS相关代码:kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skuc.dtsi: 1 s...

7475
来自专栏专知

2018年SCI期刊最新影响因子排行,最高244,人工智能TPAMI9.455

2018年6月26日,最新的SCI影响因子正式发布,涵盖1万2千篇期刊。CA-Cancer J Clin 依然拔得头筹,其影响因子今年再创新高,达244.585...

1282
来自专栏我和未来有约会

简练的视图模型 ViewModel

patterns & practices Developer Center 发布了 Unity Application Block 1.2 for Silver...

2169
来自专栏搞前端的李蚊子

Html5模拟通讯录人员排序(sen.js)

// JavaScript Document  var PY_Json_Str = ""; var PY_Str_1 = ""; var PY_Str_...

5896
来自专栏WOLFRAM

向日葵中的数学之美

1833

扫码关注云+社区