Java中的for循环——通过示例学习Java编程(9)
作者:CHAITANYA SINGH
来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21
循环用于反复执行同一组语句,直到满足特定条件为止。在Java中,我们有三种类型的基本循环:for、while和do-while。在本教程中,我们将学习如何在Java中使用for循环(for loop)。
for循环的语法:
|
1
2
3
4
|
for(初始化initialization; 循环条件condition; 递增/递减increment/decrement){ statement(s);} |
for循环的执行流程
当程序在运行的时候,解释器一直在跟踪要执行的语句,我们称之为控制流,或者程序的执行流程。

第一步:在for循环中,首先进行初始化,在整个for循环中,初始化部分的语句只在开始的时候执行一次。
第二步:在每次迭代时评估for循环中的条件,如果条件为true(真)则执行循环体内的语句。一旦条件返回false(假),for循环中的语句就不会执行,程序就跳到for循环外面的语句上运行。
第三步:每次执行for循环体后,程序回头执行for循环的递增/递减部分,更新循环计数器。
第四步:第三步后,程序跳转到第二步,重新评估循环条件,决定是继续执行在for循环内部的语句还是跳出for循环执行后面的语句。
简单for循环示例
|
1
2
3
4
5
6
7
|
class ForLoopExample { public static void main(String args[]){ for(int i=10; i>1; i--){ System.out.println("The value of i is: "+i); } }} |
输出:
|
1
2
3
4
5
6
7
8
9
|
The value of i is: 10The value of i is: 9The value of i is: 8The value of i is: 7The value of i is: 6The value of i is: 5The value of i is: 4The value of i is: 3The value of i is: 2 |
在上面的程序中:
int i = 1是初始化表达式;i > 1是否继续循环的条件(布尔表达式,满足条件就继续循环,不满足条件就跳出循环);i-是递减操作
死循环
循环条件的布尔表达式和递增/递减运算之间的互相协调非常重要,现在让我们来看看下面这个例子:
|
1
2
3
4
5
6
7
|
class ForLoopExample2 { public static void main(String args[]){ for(int i=1; i>=1; i++){ System.out.println("The value of i is: "+i); } }} |
这是一个死循环,我们初始化里给变量i赋值为1,循环条件是i>=1,因为i的值是1,后面的递增运算i++只能让变量i的值越来越大,所以这个循环条件i>=1永远都不会返回false。这最终会导致死循环条件。因此可见,增量/递减操作的结果必须是能确保在某个时间点上,循环条件的返回值为false,这样程序才可以跳出这个for循环。
下面是另一个for循环的死循环的例子:
|
1
2
3
4
|
// infinite loopfor ( ; ; ) { // statement(s)} |
用for循环遍历数组(array)的例子:
在这里,我们使用for循环遍历和显示数组里面的每个元素。
|
1
2
3
4
5
6
7
8
9
|
class ForLoopExample3 { public static void main(String args[]){ int arr[]={2,11,45,9}; //i starts with 0 as array index starts with 0 too for(int i=0; i<arr.length; i++){ System.out.println(arr[i]); } }} |
输出:
|
1
2
3
4
|
211459 |
增强型for循环
当您想要遍历数组/集合里面的每个元素时,增强型的for循环很有用,非常易于编写和理解。
让我们采用上面编写的相同示例,并使用增强型for循环来重写它。
|
1
2
3
4
5
6
7
8
|
class ForLoopExample3 { public static void main(String args[]){ int arr[]={2,11,45,9}; for (int num : arr) { System.out.println(num); } }} |
输出:
|
1
2
3
4
|
211459 |
注:在上面的示例中,我在增强型的for循环中将变量num的数据类型声明为int(整数型)。我们将根据数组的数据类型来决定如何声明这个变量的数据类型。例如,String类型的增强型for循环需要将这个变量声明为String,如下所示:
|
1
2
3
4
|
String arr[]={"hi","hello","bye"};for (String str : arr) { System.out.println(str);} |
Java中的for循环——通过示例学习Java编程(9)的更多相关文章
- Java中的do-while循环——通过示例学习Java编程(11)
作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=22&cid=0 在上一篇教程中,我们讨论了w ...
- Java中的break循环——通过示例学习Java编程(13)
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=24 break语句通常用于以下两种情况: (A)使 ...
- Java中的while循环——通过示例学习Java编程(10)
作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=20 在上一个教程中,我们讨论了for循环的用法.在本 ...
- Java中的if-else语句——通过示例学习Java编程(7)
作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=18 当我们需要根据一个条件执行一组语句时,我们需 ...
- Java中的continue语句——通过示例学习Java编程(12)
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=23 continue语句主要是用在循环代码块中.当 ...
- Java中的switch语句——通过示例学习Java编程(8)
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=19 当我们在代码逻辑中有多个选项,而且需要为每个选 ...
- [转帖]java中的for循环
java中的for循环 https://baijiahao.baidu.com/s?id=1621622990642364099&wfr=spider&for=pc 发现自己连 for ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- Java中的构造函数——通过示例学习Java编程(14)
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=25 构造函数是用来初始化新创建的对象的代码块. ...
随机推荐
- 6、git和github
参考:http://www.cnblogs.com/qianmojing/p/6484162.htmlhttp://www.jb51.net/article/70729.htmhttp://www.c ...
- linux命令-stty
一.用途: stty——改变和打印终端行设置 二.参数: 1.打印终端行设置 -a,--all 以人可读的方式打印所有当前设置:-a参数比单独的stty命令输出的终端信息更详细 -g,--save ...
- 第四周作业-视频学习、教材作业wireshark
教材总结与作业 总结 网络嗅探技术定义:网络嗅探(sniff)是一种黑客常用的窃听技术,(1)利用计算机的网络接口截获目的地为其他计算机的数据报文,(2)监听数据流中所包含的用户账户密码或私密通信等. ...
- Android运行时Crash自动恢复框架-Recovery
转自:http://zhengxiaoyong.me/2016/09/05/Android%E8%BF%90%E8%A1%8C%E6%97%B6Crash%E8%87%AA%E5%8A%A8%E6%8 ...
- weex前端式写法解决方案---eros
前言 如果想用前端的方式写一个app怎么办呢? 如果你用的是 React,那么它已经有了一个比较完善的体系跟社区.如果你用的是Vue又不想花费太多时间去重新学习React,那么目前比较靠谱的方案就是w ...
- 创建、配置Servlet
1.创建Servlet 2.选择继承的类及需要覆盖的方法 3.Servlet结构 package com.sysker.servlet; import java.io.IOException; imp ...
- Hadoop 2.0完全分布式集群搭建方法(CentOS7+Hadoop 2.7.7)
本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是2.7.7,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...
- MarkDown基础语法大全
一.MarkDown是什么? Markdown是一种轻量级的「标记语言」,创始人为约翰·格鲁伯,用简洁的语法代替排版,目前被越来越多的知识工作者.写作爱好者.程序员或研究员广泛使用.其常用的标记符号不 ...
- Helvetic Coding Contest 2016 online mirror D1
Description "The zombies are lurking outside. Waiting. Moaning. And when they come..." &qu ...
- 自定义xml spring bean
一. xml中bean解析过程 扫描META-INF下面的 spring.schemas bean定义对应的xsd位置,在IDEA中可以辅助校验) spring.handlers xmlns对应 ...