首页 / 知识
关于Java:使用for循环或while循环进行迭代?
2023-04-17 13:07:00

Iterate with for loop or while loop?我经常看到这样的代码:
但我这样写(当Java 1.5不可用或无法使用Java 1.5时)为:
因为
我认为代码应该尽可能地易于理解,这样我就只需编写复杂的代码即可完成复杂的事情。 你怎么看? 哪个更好? 来自:http://jamesjava.blogspot.com/2006/04/iterating.html 我更喜欢for循环,因为它还将迭代器的作用域设置为for循环。 while,for和foreach构造有适当的用途:
显然,上面有一些例外,但这是我决定使用其中的一般规则。话虽如此,我倾向于更频繁地使用 为什么不使用for-each构造? (我已经有一段时间没有使用Java了,但是它存在于C#中,并且我很确定Java 1.5也有使用):
正如您所指出的,我认为范围是这里最大的问题。 在" while"示例中,迭代器在循环外部声明,因此在循环完成后它将继续存在。如果在以后的某个时间再次使用相同的迭代器,则可能会导致问题。例如您可能忘记在另一个循环中使用它之前对其进行初始化。 在" for"示例中,迭代器在循环内部声明,因此其范围仅限于循环。如果您尝试在循环后使用它,则会出现编译器错误。 恕我直言,如果您从英语角度看这段代码,则在这种情况下,for循环的可读性较差。我正在编写一个代码,其中的作者确实滥用了循环,而且效果不佳。比较以下内容:
与
如果只使用一次迭代器并将其丢弃,则首选第二种形式;否则,您必须使用第一种形式
使用for循环,您可以使用单个变量,因为它为当前仅用于for循环的变量设置了范围。但是,这在while循环中是不可能的。 for(i = 0; i n2; i + = 2)做点什么。
因此,在第一个循环之后,i = n1-1最后。但是在使用第二个循环时,您可以将i再次设置为0。 int i = 0; while(我小于限制){做某事..; i ++; } 因此,最后我将设置为limit-1。因此,您不能在另一个while循环中使用相同的i。 并非在这种情况下可能很重要,但是编译器,VM和CPU通常使用他们在幕后使用的特殊优化技术,这些技术可使循环性能更好(并在不久的将来并行化),通常它们不会这样做。 while循环(因为很难确定其实际运行方式)。但是在大多数情况下,代码清晰度应该胜过优化。 我同意迭代时" for"循环更清晰,更合适。 " while"循环适用于轮询,或者满足退出条件的循环数将根据循环内的活动而变化。 学术界倾向于使用while循环,因为它可以简化程序的推理。我倾向于使用for或foreach循环结构,因为它们使代码更易于阅读。 两者都很好,但请记住,有时直接访问Iterator很有用(例如,如果要删除符合特定条件的元素-如果在for(T o内执行collection.remove(o),则会得到ConcurrentModificationException:集合)循环)。 我更喜欢在几乎所有时间都编写for(blah:blah)[foreach]语法,因为它对我来说似乎更自然易读。一般来说,迭代器的概念在编程之外并没有真正的相似之处 我是为了清晰起见的for循环。当我遇到一些不确定的条件时使用while循环。 我同意应尽可能使用for循环,但有时会在循环体内控制更复杂的逻辑,以控制迭代器。在这种情况下,您必须花点时间。 尽管两者都很好,但我倾向于使用第一个示例,因为它更易于阅读。 使用while()循环在每一行上进行的操作较少,这使代码新手可以更轻松地了解所发生的情况。 这种类型的构造还使我可以将初始化分组在一个公共位置(在方法的顶部),这也简化了我的注释,并为第一次阅读它的人提供了概念化。 都可以。我自己用于(),并且我不知道是否存在编译问题。我怀疑它们都已经优化到几乎相同的东西。 |
最新内容
相关内容
linux命令基础代码?
linux命令基础代码?,基础,系统,管理,工作,代码,网络,单位,信息,数据,命令,linux必学的60个命令安装和登录命令:login、shutdown、halt、rebootlinux命令循环导入?
linux命令循环导入?,服务,系统,密码,数据,增长,名字,数字,官网,地址,文件,mysql在linux命令行下导入txt文件mysqlimport命令 mysqlimport可以linux打开代码命令行?
linux打开代码命令行?,系统,首页,工具,终端,代码,密码,情况,命令,快捷键,窗口,linux怎么打开命令行窗口在Linux系统中,打开命令行窗口需要使用linux编辑循环命令?
linux编辑循环命令?,代码,增长,工具,基础,灵活,状态,连续,系统,数字,数据,linux的for循环的写法(1)列表for循环 Shell支持使用略写的计数方式,如{linux克隆代码命令?
linux克隆代码命令?,系统,代码,文件,命令,目录,源文件,文件夹,路径,目标,表示,Linux文件拷贝命令?linux系统使用cp命令即可将一个文件夹里面的linux命令行调试代码?
linux命令行调试代码?,环境,代码,信息,平台,程序,编辑,版本,步骤,体系结构,处理器,linux怎么调试pythonLinux中如何安装Python?安装pycharmPychlinux编译源代码命令?
linux编译源代码命令?,工具,代码,百度,最新,环境,项目,系统,电脑,密码,内核,linux怎样编译git源码包1、linux的源码是在/usr/src这个目录下,此linux命令提交代码?
linux命令提交代码?,工作,系统,地址,代码,命令,数据,信息,目录,标准,发行,求助:LINUX常用SHELL命令你可以通过打开Linux的terminal(终端)来执行Slinux循环命令大全?
linux循环命令大全?,工作,地址,系统,命令,工具,代码,目录,连续,环境,管理,Linux命令大全1、Linux命令大全以下是一些常用的 Linux 命令:ls:列出循环执行linux命令?
循环执行linux命令?,工具,系统,名称,代码,第一,环境,位置,数字,脚本,变量,Linux的shell脚本for循环怎么调用位置变量1、linux shell中的变量一linux代码同步命令?
linux代码同步命令?,时间,服务,系统,地址,代码,网络,通信,图片,风险,管理,linux系统时钟同步命令1、因此使用ntpdate同步可能会引发风险,因此该linux命令错误代码?
linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Linux管理常见错误1、检查权限:使用文件浏览器和终端,检查文件的访问