虽然所有循环结构都可以用 while 或者 do...while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。 for循环执行的次数是在执行前就确定的。 语法格式如下:

for(初始化; 布尔表达式; 更新) {//代码语句
}

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

三种类型

  • 简单for循环
  • for-each或增强型for循环
  • 标记for循环

这里了解一下就可以,慢慢学

注意:for 关键字后面括号中的 3 个条件表达式必须用“;”隔开

实例:

public class Test {public static void main(String args[]) {for(int x = 10; x < 20; x = x+1) {System.out.print("value of x : " + x );System.out.print("\n");}}
}

运行结果:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

for 循环语句执行的过程为:首先执行条件表达式 1 进行初始化,然后判断条件表达式 2 的值是否为 true,如果为 true,则执行循环体语句块;否则直接退出循环。最后执行表达式 3,改变循环变量的值,至此完成一次循环。接下来进行下一次循环,直到条件表达式 2 的值为 false,才结束循环,其运行流程如图 1 所示。

值得指出的是,for 循环的循环迭代语句并没有与循环体放在一起,因此即使在执行循环体时遇到 continue 语句结束本次循环,循环迭代语句也一样会得到执行。

for 循环和 while、do while 循环不一样:由于 while、do while 循环的循环迭代语句紧跟着循环体,因此如果循环体不能完全执行,如使用 continue 语句来结束本次循环,则循环迭代语句不会被执行。但 for 循环的循环迭代语句并没有与循环体放在一起,因此不管是否使用 continue 语句来结束本次循环,循环迭代语句一样会获得执行。

与前面循环类似的是,如果循环体只有一行语句,那么循环体的大括号可以省略。

例如,同样是计算 5 的阶乘,使用 for 循环的实现代码如下:

public static void main(String[] args) {int result = 1;for (int number = 1; number <= 5; number++) {result *= number;}System.out.print("5 的阶乘结果是:" + result);   // 输出"5的阶乘结果是:120"
}

上述语句的含义可以理解为,将 number 变量的值从 1 开始,每次递增 1,直到大于 5 时终止循环。在循环过程中,将 number 的值与当前 result 的值进行相乘。

for 语句中初始化、循环条件以及迭代部分都可以为空语句(但分号不能省略),三者均为空的时候,相当于一个无限循环

所以,for循环一般适合循环次数是已知的操作

特点

  • 初始化的条件可以使用局部变量和外部变量
  • 使用局部变量时,控制执行在 for 结束后会自动释放,提高内存使用效率
  • 且变量在 for 循环结束后,不能被访问
  • 先判断,再执行

---------------------------------------------------深入扩展-----------------------------------------------

Java 增强 for 循环

Java5 引入了一种主要用于数组的增强型 for 循环。

Java 增强 for 循环语法格式如下:

for(声明语句 : 表达式){//代码句子}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

for循环中的break与continue

break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

语法

break 的用法很简单,就是循环结构中的一条语句:

break;

continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

语法

continue 就是循环体中一条简单的语句:

continue;

for循环扩展学习

···················································一般写法···············································

遍历数组的传统方式

/* 建立一个数组 */
int [] integers={1,2,3,4};
/* 开始遍历 */
for (int j=0;j<integers.length;j++){int i = integers[j];System.out.println(i);
}

遍历Collection对象的传统方式

/* 建立一个Collection */String[] strings = {"A", "B", "C", "D"};Collection stringList = java.util.Arrays.asList(strings);/* 开始遍历 */for (Iterator itr = stringList.iterator(); itr.hasNext();) {Object str = itr.next();System.out.println(str);}

···················································其他写法···············································

遍历数组的简单方式

/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int i : integers) {System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */}

遍历数组的简单方式的等价代码

/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) {System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */}

防止在循环体里修改循环变量

禁止重新赋值

int[] integers = {1, 2, 3, 4};for (final int i : integers) {i = i / 2; /* 编译时出错 */}

这只是禁止了对循环变量进行重新赋值。给循环变量的属性赋值,或者调用能让循环变量的内容变化的方法,是不被禁止的。

允许修改状态

Random[] randoms = new Random[]{new Random(1),new Random(2), new Random(3)};for (final Random r : randoms) {r.setSeed(4); /* 将所有Random对象设成使用相同的种子 */System.out.println(r.nextLong()); /* 种子相同,第一个结果也相同 */}

提示:部分类容查询了CSDN部分博客教程,许多部分新手不会涉及,了解即可,不必要详细学习!

Java语言-for循环详解相关推荐

  1. [C语言] for循环详解 循环 for循环实例巧解

    前言>>> 嘿嘿,本文要讲的小方法实例使用牛客网的这道题 ↑↑↑ .怎么样!!?  ^  ^ 100% 到底是系统太假还是我写得好??? 开始>>>   题目:线段 ...

  2. C语言for循环详解

    for 循环的使用更加灵活,在日常的程序开发过程中我们会使用的更多一些. 使用 while 循环来计算1加到100的值,代码如下: #include <stdio.h> int main( ...

  3. Java千问:Java语言位运算符详解

    很多编程语言都有位运算符,Java语言也不例外.在Java语言中,提供了7种位运算符,分别是按位与(&).按位或(|).按位异或(^).取反(~).左移(<<).带符号右移(> ...

  4. c语言 循环里定义变量赋值,C语言For循环详解

    c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句. for(表达式 1;表达式 2;表达式 ...

  5. Java语言Switch语句详解(一)

    Switch语句概述 1.switch语句称为情况选择语句,又称为开关语句. 2.switch是分支语句的一种,用于对多种情况进行不同处理的语句. 3.JDK1.7 之前的switch语句限定对整形数 ...

  6. java for新循环_Java for循环详解

    Java for循环详解 for 语句是应用最广泛.功能最强的一种循环语句.大部分情况下,for 循环可以代替 while 循环.do while 循环. for 语句是一种在程序执行前就要先判断条件 ...

  7. java for循环教程,java入门教程:for的用法_for循环详解

    for循环详解 虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句 -- for循环,使一些循环结构变得更加简单. for循环执行的次数是在执行前就确定的.语法 ...

  8. c语言memset对应java,C语言memset函数详解

    C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即"内存"(memory)的意思. ...

  9. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java 8引入 ...

最新文章

  1. java saf_Java 8 Lambda表达式探险
  2. Spring中ref local与ref bean区别
  3. flutter布局-8-animated_icons动画图片
  4. 如何有效的压缩虚拟磁盘
  5. 拓展 NLog 优雅的输送日志到 Logstash
  6. 大数据新手之路二:安装Flume
  7. mysql --max_allowed_packet=32m,如何修改MySQL-max_allowed_packet
  8. micropython做产品开发_关于MicroPython是否可以真正用在产品开发的讨论
  9. poj1811(pollard_rho模板)
  10. 360软件管家android,360软件管家
  11. 小程序 java在线考试系统python自动阅卷系统php自动组卷系统
  12. 【APIcould】连接手机,通过APPLoader在手机上实时展示项目效果
  13. DevOps Master凤凰项目沙盘总结:大美的DevOps总结
  14. 硬核南大!一天两篇Nature正刊!
  15. 片段音乐歌词生成工具
  16. 树莓派4+普通机械硬盘+Netatalk搭建家用Nas+苹果TimeMachine
  17. oneTab的使用也会让Chrome 卡顿
  18. QChart之QBarSeries绘制条形图
  19. JVM类加载过程,JDK和JER区别
  20. 【ECharts】ECharts配置项详解

热门文章

  1. html表格为什么不显示,数据表格不显示HTML表格数据
  2. JSP下载文件(word是下载还是在线打开)
  3. 8qam 解调 代码
  4. LTE-LTE-A-4G、4G+-LTE-A Pro
  5. 【MapGIS精品教程】014:栅格数据管理与应用
  6. 云媒易软文写作技巧:利用故事促进用户购买
  7. 威盛电子- via ASIC 笔试题
  8. java判断请求是浏览器发送的还是黑客发送的
  9. PC端和移动端都支持视频video自动播放的代码
  10. element ui table组件 异步加载数据盒子位移