一. for 循环

1.循环结构的四个组成部分

(1). 初始部分:设置循环的初始状态,比如我们设置记录循环次数的变量 i 为 0 .

(2). 循环体:重复执行的代码 .

(3).迭代部分:下一次循环开始前要执行的部分,在while循环中它作为循环体的一部分,比如使用"i++;"进行循环次数的累加 .

(4). 循环条件:判断是否继续循环的条件 .

// 语法

for(表达式1; 表达式2; 表达式3)

{

// 循环体

}

for 循环中三个表达式的含义

表达式

形式

功能

举例

表达式 1

赋值语句

循环结构的初始部分,

为循环变量赋初值

int i = 0

表达式 2

条件语句

循环结构的循环条件

i < 100

表达式 3

赋值语句,通常使用++或--运算符

循环结构的迭代部分,

通常用来修改循环变量的值

i++

2. 执行顺序

(1). 执行初始部分 (int i = 0;) .

(2). 进入循环条件判断 (i < 100) .

(3). 根据循环条件判断结果

如果为true,执行循环体。

如果为false,退出循环体,步骤(4)、(5)均不执行 .

(4). 执行迭代部分,改变循环变量值 (i ++)

(5). 依次重复步骤(2)、(3)、(4),直到退出 for 循环结构

3. 省略表达式

(1). 省略"表达式 1",例如:

for( ; i < 10; i++);

这个for循环虽然省略了"表达式 1",但其后的";"号没有省略。我们在实际编程中,如果出现"表达式 1"省略的情况,需要在 for 语句前给循环变量赋值。因此,可将上面的语句修改为:

int i = 0;

for( ; i < 10; i++);

(2). 省略"表达式 2",即不判断循环条件,循环将无终止运行,也就形成了"死循环",比如下面的for 语句:

for(int i = 0; ; i++);

在编程过程中要避免"死循环"的出现,所以对上面的语句可以做如下修改:一种方法是添加"表达式 2",另一种方法是在循环体中使用 break 强制跳出循环。

(3). 省略 "表达式 3",即不改变循环变量的值,也会出现"死循环",比如下面的语句:

for(int i = 0; i < 10; );

这里省略了 "表达式 3",变量 i 的值始终未 0,因此循环条件永远成立,程序就会出现"死循环",在这种情况下,我们可以再循环体中改变 i 的值,语句如下:

for(int i = 0; i < 10; )

{

i++;

}

这样就能使循环正常结束,不会出现"死循环"

(4). 三个表达式都省略,即如下语句:

for( ; ; );

上面这个语句在语法上没有错误,但逻辑上市错误的,我们可以参考上面三种情况的描述进行修改。

在实际开发中,为了提高代码的可读性,尽量不要省略各个表达式,如果需要省略,可以考虑是否改用while或 do-while 循环。

二. 跳转语句

Java 支持三种形式的跳转:break (停止)、continue(继续) 和 return (返回)。

1. break 语句

在 switch 结构中,break 语句用于终止 switch 语句中的某个分支,使程序跳到 switch 语句块以外的下一条语句

在循环结构中,break语句用于用于终止某个循环、使程序跳到循环块外的下一条语句。在循环中位于break后的语句将不再执行,循环也停止执行。

break 语句不仅可以用在 for循环中,也可以用在 while 和 do-while 循环中。

break 语句通常与 if 条件语句一起使用。

2. continue 语句

continue 语句用于,在某次循环中,我们不想执行完循环体中所有的语句,就像跳出次循环,开始执行下一次循环

continue 可以用于 for 循环,也可以用于 while 和 do-while 循环。 在 for 循环中, continue 使程序先跳转到迭代部分,然后判断循环条件。如果为 true,继续下一次循环;否则终止循环。在while循环中,continue执行完毕后,程序将直接判断循环条件。continue 语句只能用在循环结构中。

3.continue 和 break 语句的区别

在循环结构中:

(1). break 语句是终止某个循环,程序跳转到循环块外的下一条语句。

(2). continue 语句是跳出本次循环,进入下一次循环。

三. 循环结构总结

Java 提供的最主要的三种循环结构: while 、do-while 、for 循环

对比:

1. 语法不同

// while 循环语句

while()

{

//循环体

}

// do-while循环语句

do

{

//循环体

}while();

// for循环语句

for(初始化; 条件; 迭代)

{

//循环体

}

2. 执行顺序不同

(1). while循环: 先进行条件判断、再执行循环体。如果条件不成立,退出循环。

(2). do-while循环:先执行循环体,再进行条件判断,循环体至少执行一次。

(3). for 循环:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。

3. 适用情况不同

在解决问题时,对于循环次数确定的情况,通常选用 for 循环。对于循环次数不确定的情况,通常选用 while 和 do-while 循环。

四. 总结

1. for 循环的语法格式如下:

for( 参数初始化; 条件判断; 参数值改变)

{

//循环体

}

2. 在循环中,可以使用 break 和continue 语句控制程序的流程。

(1). break 语句是终止某个循环,程序跳转到循环块外的下一条语句。

(2). continue 语句是跳出本次循环,进入下一次循环。

java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)相关推荐

  1. java objective-c,Objective-C基础教程学习笔记(附录)从Java转向Objective-C

    Cocoa提供了一个名为NSPredicate的类,它用于指定过滤器的条件.可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛选,判断它们是否与条件相匹配. ...

  2. 学习笔记21.07.10:绘制页面组合图

    # 从pyecharts.charts导入Map from pyecharts.charts import Map # 从pyecharts.charts中导入HeatMap模块 from pyech ...

  3. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  4. Java开发面试高频考点学习笔记(每日更新)

    Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...

  5. 杨晓峰-java核心技术36讲(学习笔记)- 第1讲 | 谈谈你对Java平台的理解?

    杨晓峰-java核心技术36讲(学习笔记) 接下来我会分享杨晓峰-java核心技术36讲的学习笔记,内容较多,补充了其中一些牛人评论,相对详细(仅供个人学习记录整理,希望大家支持正版:https:// ...

  6. 拉勾网《32个Java面试必考点》学习笔记之一------Java职业发展路径

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  7. 拉勾网《32个Java面试必考点》学习笔记之十二------架构演进与容器技术

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  8. 拉勾网《32个Java面试必考点》学习笔记之十一------消息队列与数据库

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  9. (尚硅谷java零基础教程)学习笔记day7/8-数组

    1.数组的概述 1.1 定义 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 1.2 数组的相关概念 数组名 元素 数组的索引 ...

最新文章

  1. 【网络流24题】解题报告:E 、圆桌问题(最大流求二分图多重匹配)
  2. 如何用参数化SQL语句污染你的计划缓存
  3. 02_使用jq实现进入和离开动画
  4. 高速软件加密锁技术的发展历程
  5. 2018年宝鸡市三检文科数学题目解答
  6. Java学习系列(十九)Java面向对象之数据库编程
  7. vs2005 虚拟调试配置(转)
  8. 微擎不现实数组_Java这个类,大概就和现实中吃饭一样常见
  9. java计算机二级内容总结
  10. android设备多屏互动,大神教你玩转多屏互动-PC投屏安卓篇
  11. 打开.sql文件的方法
  12. 物联网应用开发实践案例-智慧农业
  13. Linux下STM32MP157芯片的A7核裸跑方法
  14. 锐龙r3 4100核显 r3 4100参数 r3 4100评测
  15. 可落地的DDD(6)-工程结构
  16. 宇宙是一个无始无终的循环?道翰天琼认知智能机器人平台API接口大脑为您揭秘-2。
  17. 传手机ODM厂商拿到三星大单 将带动产业链走出寒冬?
  18. 计算机内存4G,笔记本电脑4g内存和8g内存的区别
  19. 使用UAS-GAL4系统在果蝇中敲低某一基因的表达
  20. http笔记整理:代理服务

热门文章

  1. eclipse配置jdk问题
  2. SolrCloud6.1.0之SQL查询测试
  3. mysql语句:索引,游标,存储过程,视图,分区,分库分表,数据库集群,数据库负载均衡...
  4. 知识图谱资源-NLP
  5. setInterval设置停止和循环
  6. 控件包含代码块(即 % ... %),因此无法修改控件集合。
  7. 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)
  8. windows环境下tensorflow安装过程详解(亲测安装成功后测试那块)
  9. 一步一步搭建ELK日志处理集群(自己做过测试)
  10. 如何使用Linux的Crontab定时执行PHP脚本的方法