网站首页 > java教程 正文
循环
除了能够对您的程序应用条件并根据各种if/ then 场景看到不同的结果外,
您有时还希望您的代码一遍又一遍地做同样的事情,直到工作完成。
在本节中,了解用于迭代代码或不止一次执行的构造。
了解java的三大循环的运用
什么是循环?
循环是在满足特定条件(或一组条件)时重复执行的编程构造。
例如,您可能要求程序读取所有记录,直到数据文件结束,或者依次处理数组的每个元素。(您将在下一部分中了解数组)。
三个循环结构使得可以迭代代码或多次执行它:
for 循环
while 循环
do... while循环
for循环
Java语言中的基本循环结构是for 语句。您可以使用for语句对一系列值进行迭代,以确定执行循环的次数。
for循环的抽象语法是:
for (initialization; loopWhileTrue; executeAtBottomOfEachLoop) {
statementsToExecute
}
在开始循环,初始化语句执行(多个初始化语句可以用逗号分隔)。
只要loopWhileTrue(必须取值为一个Java条件表达式true或 false)为真,循环执行。
在循环的底部,executeAtBottomOfEachLoop执行。
例如,如果您希望main()清单8 中的方法中的代码执行三次,则可以使用for循环。
清单8. for循环
public static void main(String[] args) {
Logger l = Logger.getLogger(Person.class.getName());
for (int aa = 0; aa < 3; aa++)
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
l.info("Loop executing iteration# " + aa);
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" + p.getGender());
}
}
局部变量aa在清单8开始时初始化为零。此语句只在循环初始化时执行一次。然后循环继续三次,每次 aa增加一。
你将在下一节看到一个替代for循环语法可用于循环实现接口的 Iterable结构(如数组和其他Java实用程序类)。
现在,请注意使用清单8中的for循环语法。
while循环
while循环的语法是:
while (condition) {
statementsToExecute
}
您可能怀疑,如果条件评估为true,循环执行。
在每个迭代的顶部(即,在任何语句执行之前),条件被求值。如果条件评估为true,循环执行。
因此, while如果它的条件表达式至少一次不为真,循环可能永远不会执行。
再看看清单8中的for循环。为了比较,清单9使用循环来获得相同的结果。while
清单9. while循环
public static void main(String[] args) {
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
while (aa < 3) {
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
l.info("Loop executing iteration# " + aa);
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" + p.getGender());
aa++;
}
}
正如你所看到的,while循环需要比for循环更多的内务。您必须初始化aa 变量,并记住在循环的底部递增它。
do ... while循环
如果你想要一个循环总是执行一次,然后检查它的条件表达式,你可以使用一个do...while循环,如清单10所示。
清单10. do...while循环
int aa = 0;
do {
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
l.info("Loop executing iteration# " + aa);
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" + p.getGender());
aa++;
} while (aa < 3);
aa < 3直到循环结束才检查条件表达式()。
循环终止
有时,您需要在条件表达式求值之前退出或终止循环 false。
这种情况可能发生,如果你搜索一个数组的String一个特定的值,一旦你找到它,你不关心数组的其他元素。
对于想要break保留的时间,Java语言提供了语句,如清单11所示。
清单11. break语句
public static void main(String[] args) {
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
while (aa < 3) {
if (aa == 1)
break;
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
l.info("Loop executing iteration# " + aa);
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" + p.getGender());
aa++;
}
}
该break语句将您带到它所在的循环之外的下一个可执行语句。
循环继续
在清单11中的(简单的)示例中,您只想执行一次循环,然后执行bail。
您也可以跳过循环的单次迭代,但继续执行循环。为此,您需要continue语句,如清单12所示。
清单12. continue语句
public static void main(String[] args) {
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
while (aa < 3) {
aa++;
if (aa == 2)
continue;
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
l.info("Loop executing iteration# " + aa);
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" +
p.getGender());
}
}
在清单12中,您跳过循环的第二次迭代,但继续到第三次。
continue当你在处理记录并遇到你不想处理的记录时,就会派上用场。您可以跳过该记录并移至下一个记录。
以上是南昌北大青鸟小编精心为你查找的技术文章,这里有你喜欢的的文章。还有好的java技术,欢迎来电:零七九一:87672992
猜你喜欢
- 2024-11-03 详细总结Java for循环的那些坑(java的for循环中是如何执行的)
- 2024-11-03 11.Java中的 while 循环(java的for循环语句)
- 2024-11-03 传说级大佬总结的几道Java循环练习题(适合新人)
- 2024-11-03 java中的while循环(javado while循环)
- 2024-11-03 Java流程控制语句之循环结构--初学者适用
- 2024-11-03 What?Java循环还能嵌套循环,说好的禁止套娃呢!「第12集」
- 2024-11-03 Golang for 循环(golangfor循环特性改变)
- 2024-11-03 JavaScript for 循环(javascriptfor循环数字累加)
- 2024-11-03 java循环的这4种遍历方式,有些16K的程序员可能是懵逼的
- 2024-11-03 用了那么久的 Java For 循环,你知道哪种方式效率最高吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)