虽然所有循环结构都可以用 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. mysql课程id数据类型_数据库学习之六:mysql数据类型
  2. iOS 应用发布到AppStore流程
  3. dev c++ 64位_RHEL7.8添加本地源以及扩展GCC,C++的32位和静态库支持
  4. stm32--对固件库的认识2
  5. 网络信息系统(NIS服务器)
  6. winform(C#)透明方法
  7. 利用blink+MQ实现流计算中的超时统计问题
  8. Sql中partition by的使用
  9. 职场潜规则:公司出现这三种信号,你必须果断辞职!
  10. 从零开始学Pytorch(三)之多层感知机的实现
  11. java查询线程状态命令_JAVA 线程死锁,以及linux 命令和jstack 命令 查看线程死锁状态信息...
  12. atomicReference 的使用和AtomicStampedReference 解决ABA的问题
  13. 电脑键盘下划线怎么打_电脑键盘失灵鼠标不动怎么办 键盘失灵鼠标不动解决办法...
  14. 输出单向链表中倒数第k个结点
  15. 算法第四版开发环境的配置
  16. 远景论坛黑苹果专区_黑苹果扯犊子篇
  17. Gensim库的使用——Word2vec模型(二)训练自己的模型与训练参数
  18. HttpClilent整合Spring使用【配置和代码】
  19. 补交20145226蓝墨云班课 -- 正则表达式作业
  20. Maven 错误找不到符号

热门文章

  1. 软考高级 真题 2010年下半年 信息系统项目管理师 论文
  2. 《机器学习》赵卫东学习笔记 第6章 神经网络(课后习题及答案)
  3. PADS logic 新建原理原图库(原理图新建、元器件新建、元器件包含多个不同子模块新建)
  4. tomcat修改端口后启动不了(还是以8080端口启动)
  5. 水库雨水情自动测报系统 水雨情自动测报系统
  6. PotPlayer播放视频有回声解决方法
  7. 山东企业ISO14001的重要作用
  8. 数据结构-拓展突破-特殊矩阵(对称矩阵,三角矩阵,三对角矩阵,稀疏矩阵)的压缩存储)
  9. Thinkpad-X250-Hackintosh-OpenCore-BigSur11.6
  10. 开源高性能 RISC-V 处理器“香山”国际亮相;Apache Log4j 远程代码执行漏洞;DeepMind 拥有 2800 亿参数的模型 | 开源日报