java中forjava for循环语句应用的运用

Java Foreach语句使用总结
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为&foreach&语句。从英文字面意思理解foreach也就是&for 每一个&的意思。实际上也就是这个意思。 foreach的语句格式: for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语句; }
下面通过两个例子简单例子看看foreach是如何简化的。代码如下:
一、foreach简化数组和集合的遍历
import java.util.A
import java.util.L
import java.util.ArrayL
* Created by IntelliJ IDEA.
* User: leizhimin
* Time: 16:58:24
* 5新特征之foreach语句使用总结
public class TestArray {
public static void main(String args[]) {
TestArray test = new TestArray();
test.test1();
test.listToArray();
test.testArray3();
* foreach语句输出一维数组
public void test1() {
//定义并初始化一个数组
int arr[] = {2, 3, 1};
System.out.println(----1----排序前的一维数组);
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
//对数组排序
Arrays.sort(arr);
//利用java新特性for each循环输出数组
System.out.println(----1----排序后的一维数组);
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
* 集合转换为一维数组
public void listToArray() {
//创建List并添加元素
List list = new ArrayList();
list.add(1);
list.add(3);
list.add(4);
//利用froeach语句输出集合元素
System.out.println(----2----froeach语句输出集合元素);
for (String x : list) {
System.out.println(x);
//将ArrayList转换为数组
Object s[] = list.toArray();
//利用froeach语句输出集合元素
System.out.println(----2----froeach语句输出集合转换而来的数组元素);
for (Object x : s) {
System.out.println(x.toString()); //逐个输出数组元素的值
* foreach输出二维数组测试
public void testArray2() {
int arr2[][] = {{4, 3}, {1, 2}};
System.out.println(----3----foreach输出二维数组测试);
for (int x[] : arr2) {
for (int e : x) {
System.out.println(e); //逐个输出数组元素的值
* foreach输出三维数组
public void testArray3() {
int arr[][][] = {
{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
System.out.println(----4----foreach输出三维数组测试);
for (int[][] a2 : arr) {
for (int[] a1 : a2) {
for (int x : a1) {
System.out.println(x);
运行结果: ----1----排序前的一维数组
----1----排序后的一维数组
----2----froeach语句输出集合元素
----2----froeach语句输出集合转换而来的数组元素
----4----foreach输出三维数组测试
Process finished with exit code 0 二、foreach语句的局限性 通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。下面看一个例子就明白了:
* Created by IntelliJ IDEA.
* User: leizhimin
* Time: 17:07:30
* foreach语句的局限性
public class TestArray2 {
public static void main(String args[]) {
//定义一个一维数组
int arr[] = new int[4];
System.out.println(----未赋值前输出刚刚定义的数组----);
for (int x : arr) {
System.out.println(x);
//通过索引给数组元素赋值
System.out.println(----通过循环变量给数组元素赋值----);
for (int i = 3; i & 0; i--) {
//循环输出创建的数组
System.out.println(----赋值后,foreach输出创建好的数组----);
for (int x : arr) {
System.out.println(x);
运行结果: ----未赋值前输出刚刚定义的数组----
----通过循环变量给数组元素赋值----
----赋值后,foreach输出创建好的数组----
Process finished with exit code 0 三、总结 foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。相对老的for语句来说是个很好的补充。提倡能用foreach的地方就不要再用for了。在用到对集合或者数组索引的情况下,foreach显得力不从心,这个时候是用for语句的时候了。 以上出自 &熔 岩& 博客,请务必保留此出处https://lavasoft.blog.51cto.com/
例:对比两种for循环;之后实现了用增强for循环遍历二维数组;最后采用三种方式遍历了一个List集合。
import java.util.ArrayL
import java.util.I
import java.util.L
public class ForeachTest
public static void main(String[] args)
int[] arr = {1, 2, 3, 4, 5};
System.out.println(----------旧方式遍历------------);
//旧式方式
for(int i=0; i list = new ArrayList();
list.add(a);
list.add(b);
list.add(c);
System.out.println(----------方式1-----------);
//第一种方式,普通for循环
for(int i = 0; i & list.size(); i++)
System.out.println(list.get(i));
System.out.println(----------方式2-----------);
//第二种方式,使用迭代器
for(Iterator iter = list.iterator(); iter.hasNext();)
System.out.println(iter.next());
System.out.println(----------方式3-----------);
//第三种方式,使用增强型的for循环
for(String str: list)
System.out.println(str);
由此可见,For-Each循环的缺点:丢掉了索引信息。
  当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。扫一扫体验手机阅读
Java中的break和continue关键字使用总结
一、作用和区别
break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条件的比较。
continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体。
二、其他用途
break和continue可以配合语句标签使用。这个都很简单,下面给个综合实例,看看就明白 了:
/** * Created by IntelliJ IDEA. * User: leizhimin * Date:
* Time: 15:47:20 */ public class Test { &&&&public static void main(String args[]) {&&&&&&&&&Test test = new Test (); &&&&&&&&test.testBreak1(); &&&&&&&&test.testContinue1(); &&&&&&&&test.testBreak2(); &&&&&&&&test.testContinue2(); &&&&} &&&&/** &&&& * 测试continue &&&& * continue用来结束本次循环 &&&& */ &&&&public void testContinue1() { &&&&&&&&System.out.println("--------测试continue-------"); &&&&&&&&for (int i = 1; i &= 5; i++) { &&&&&&&&&&&&if (i == 3) continue; &&&&&&&&&&&&System.out.println("i=" + i); &&&&&&&&} &&&&} &&&&/** &&&& * break用来结束整个循环体 &&&& */ &&&&public void testBreak1() { &&&&&&&&System.out.println("--------测试break1-------"); &&&&&&&&for (int i = 1; i &= 5; i++) { &&&&&&&&&&&&if (i == 3) break; &&&&&&&&&&&&System.out.println("i=" + i); &&&&&&&&} &&&&} &&&&/** &&&& * 测试带标签的break语句 &&&& * 标签只能写在循环体之前,顺便学习一下java中语句标签的定义和使用 &&&& */ &&&&public void testBreak2() { &&&&&&&&System.out.println("--------测试break2-------"); &&&&&&&&int i = 1; &&&&&&&&int k = 4; &&&&&&&&lable1: &&&&&&&&for (; i &= 5; i++, k--) { &&&&&&&&&&&&if (k == 0) break lable1; &&&&&&&&&&&&System.out.println("i=" + i + " ; k=" + k); &&&&&&&&} &&&&} &&&&public void testContinue2() { &&&&&&&&System.out.println("--------测试continue2-------"); &&&&&&&&lable1: &&&&&&&&for (int i = 1; i & 10; i++) { &&&&&&&&&&&&lable2: &&&&&&&&&&&&System.out.println("i=" + i); &&&&&&&&&&&&for (int j = 0; j & 10; j++) { &&&&&&&&&&&&&&&&if (j == 9) continue lable1; &&&&&&&&&&&&} &&&&&&&&} &&&&} }
--------测试break1------- i=1 i=2 --------测试continue------- i=1 i=2 i=4 i=5 --------测试break2------- i=1 ; k=4 i=2 ; k=3 i=3 ; k=2 i=4 ; k=1 --------测试continue2------- i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 Process finished with exit code 0
673篇文章,4041W+人气,65粉丝
大数据时代的微服务之路
¥51.00491人订阅Java 中如何使用增强for循环 | 基于实例代码分步讲解 一站式学习Java | how2j.cn
增强型for循环在遍历一个数组的时候会更加快捷
本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器
如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)
走神了?退回10秒
注:增强型for循环只能用来取值,却不能用来修改数组里的值
public class HelloWorld {
public static void main(String[] args) {
int values [] = new int[]{18,62,68,82,65,9};
//常规遍历
for (int i = 0; i & values. i++) {
int each = values[i];
System.out.println(each);
//增强型for循环遍历
for (int each : values) {
System.out.println(each);
public class HelloWorld {
public static void main(String[] args) {
int values [] = new int[]{18,62,68,82,65,9};
//常规遍历
for (int i = 0; i & values. i++) {
int each = values[i];
System.out.println(each);
//增强型for循环遍历
for (int each : values) {
System.out.println(each);
&姿势不对,事倍功半!
用增强型for循环找出最大的那个数
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器
如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)
走神了?退回10秒
public class HelloWorld {
public static void main(String[] args) {
int values [] = new int[]{18,62,68,82,65,9};
//数组中的内容是
for (int each : values) {
System.out.print(each+& &);
System.out.println();
int max = -1;
for (int each : values) {
if(each&max)
System.out.println(&最大的一个值是:&+max);
public class HelloWorld {
public static void main(String[] args) {
int values [] = new int[]{18,62,68,82,65,9};
//数组中的内容是
for (int each : values) {
System.out.print(each+& &);
System.out.println();
int max = -1;
for (int each : values) {
if(each&max)
System.out.println(&最大的一个值是:&+max);
把你的代码复制到下面区域。 如果在线比较不好用,请使用客户端比较软件:
代码高亮插件双击即可选中,不过部分同学反应,通过代码高亮插件复制的代码无法在IDEA里正常显示,这里提供TEXTAREA的方式,方便复制,谢谢
根据练习目标尽量自己实现代码效果,期间会碰到疑问,难题,和自己不懂的地方,这些都是必要的过程
完成过程中,碰到无法解决的问题,带着疑问,查看答案,分析答案的解决思路
依然有不明白的地方,点开视频讲解,带着疑问,听视频讲解有问题的部分
理解后,再从头做一遍,把有疑问的地方都捋清楚
最后再总结一遍,总结思路,总结解决办法,以后遇到类似的问题,怎么处理
把这时的想法,思路,研究都记录下来,等全部学完了,再回过头来巩固和理解,学习效果就会很好,知识点掌握得也牢固.
HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
把苹果咬哭
答案时间:
tanghaozhe
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
且听风吟3461
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
Spring-rain
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
tequilasu2010
答案时间:
littlewhite
答案时间:
tequilasu2010
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
tequilasu2010
答案时间:
答案时间:
Reol_Frank
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
爱包子的鱼
答案时间:
奔跑的菊花茶
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
答案时间:
答案时间:
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
答案时间:
该用户已注销
答案时间:
答案时间:
答案时间:
答案时间:
IsThisRoot?
答案时间:
1.把max初始化为数组第一个元素。2.把max初始化为int能表示的最小值。
请至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到
提问之前请
喜迎暑假,一半时间世界杯,一半时间学习提高,全场五折,优惠码:WORLDCUP
可用于全站通
有效期6.25-6.27博客分类:
1. 简单的for循环
public static void main(String[] args) {
for (int i = 1, y = i + 10; i & 5 && y & 12; i++, y = i * 2) {
System.err.println("i=" + i + "
2. Foreach语法
public static void main(String[] args) {
for (char a : "xunhuan".toCharArray()) {
// 所有数组格式 都可以这样循环
System.err.println(a);
Foreach还支持所有实现Iterable接口的对象,Collection 接口继承了 Iterable接口,所以所有的List、Set、Queue接口的实现类(ArrayList、LinkedList、Vector、Stack、HashSet、TreeSet、LinkedHashSet、PriorityQueue),还有HashMap 中的keySet()、entrySet()方法(返回的是HashMap 中的一个实现Collection接口的内部类对象KeySet、EntrySet)都能用foreach循环; 也可以自己写一个类实现Iterable,照样可以用在foreach中。
public static class IterImpl implements Iterable&String& {
public String[] array = "dai ni zhuang bi dai ni fei".split(" ");
public Iterator&String& iterator() {
return new Iterator&String&() {
private int index = 0;
public boolean hasNext() {
return index & array.
public String next() {
return array[index++];
public void remove() {
public static void main(String[] args) {
for (String str : new IterImpl()) {
System.err.println(str);
无穷循环有两个
while(true)
看自己习惯
,就不进行文字叙述了,研究下面代码吧
public static void main(String[] args) {
outer: for (int y = 0; y & 10; y++) {
System.err.println("----〉y:" + y);
inner: for (int i = 0; i & 10; i++) {
System.err.println("i=" + i);
if (i == 0 && y == 0) {
System.err.println("continue");
if (i == 1 && y == 0) {
System.err.println("break");
if (i == 2 && y & 2) {
System.err.println("continue inner ");
if (i == 3 && y & 2) {
System.err.println("continue outer ");
if (i == 4 && y & 3) {
System.err.println("break inner");
if (i == 5) {
System.err.println("break outer");
continue inner
continue outer
break inner
break outer
shuizhaosi888
浏览: 74833 次
堆排序的时候for循环中是不是应该len & 0 而不是 ...
string2020 写道RandomAccess 是干啥的
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'for循环经典例子
循环的两种应用:穷举和迭代.
break跳出整个循环
一、穷举:将所有可能的情况都走一遍,用if筛选出符合条件。
百鸡百钱: 一只公鸡1文钱,一只母鸡2文钱,一只小鸡半文钱,需要买100只鸡, 正好花完,可以怎么买?有多少种买法?
int ff = 0;
for(int g=0;g&=100;g++)
for(int m=0;m&=50;m++)
for(int x=0;x&=200;x++)
if(g+m+x==100 && g+2*m+0.5*x==100)
System.out.println("可买公鸡"+g+"只,母鸡"+m+"只,小鸡"+x+"只");
System.out.print("共有"+ff+"种方法购买");
效果图如下:
在以下括号种添加 & +或者- &使式子成立
123( &)45( &)67( &)8( & )9=100
for(int a=-1;a&=1;a+=2)
for(int b=-1;b&=1;b+=2)
for(int c=-1;c&=1;c+=2)
for(int d=-1;d&=1;d+=2)
if(123+a*45+b*67+c*8+d*9==100)
System.out.print(a+"\t"+b+"\t"+c+"\t"+d);
效果图如下:
正1为 +号 & 负1为减号 & &所以括号中添加的顺序为 & &123( + )45( — )67( + )8( &— )9=100
二、迭代:找到规律,从已知条件,推出结果
  篮球弹跳:篮球从十米的位置向下掉落,每一次掉落都是前一次的一半,问弹跳十次之后篮球篮球的高度
float h=10;
for(int g=0;g&10;g++)
System.out.print("第十次的高度为"+h+"米");
JAVA中去掉空格经典整理 JAVA中去掉空格
1. String.trim() --------------trim()是去掉首尾空格
2.str.replac ...
有些写法上的说明写的过于武断,可能有很多不当之处,仅供参考.
package ForL import java.util.ArrayL import java.util.Itera ...
while循环:
while(循环条件){
停止while循环有两种方式:1.不再满足while后的循环条件时,循环终止:
最近在做ProtoBuf相关的项目,其中用到了动态解析,网上看了下相关资料和博文都比较少,自己来写一个记录一下学习过程.
Protocol Buffers是结构化数据格式标准,提供序列化和反序列方 ...
死锁:当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞.比如,线程1已经持有了A锁并想要获得B锁的同时,线程2持有B锁并尝试获取A锁,那么这两个线程将永远地等待下去.
方法一 Java代码
ArrayList&String& list = new ArrayList&String&();
list.add(& ...
1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...
我们平常使用的方法: List&WebElement& element = driver.findElements(By.tagName(&input&));
今天看到Thinking in Java中一个关于Exception的例子:最后看到有一篇总结的比较好的文章, 这里拿来记录下, 文章地址是:http://blog.csdn.net/salerzha ...
很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容.下面为你推荐 10 个 jQuery 的无限滚动的插件: 1. jQuery ScrollPa ...
第一次重新装了次vs再次导入以前写的项目发现找不到程序集,出现很多的警告和错误,并且代码里好多都是显示红色的 第二次乱动了下又出现此问题 记录下解决的方案和一些相关的问题方案 1.引用一个DLL,需要 ...
IOS环境下的按钮都是经过美化的,但通常我们在设计web app的时候不需要这些看上去老土的样式,所以,去除这些显得很有必要. 下面这句代码就是重置这些样式的: input[type=button]{ ...
1,启动服务:两种方式: /etc/init.d/networking start
/etc/init.d/mysql start #:service mysql start
service ne ...
一.什么是验证码及它的作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答. 可以防止恶意破解密码.刷 ...
转载的 演示地址:http://www.freejs.net/demo/29/index.html 首页&&TAB标签&&jquery实现简单的Tab切换菜单(2013-09- ...
当然,如果把系统语言更改为英文,Chrome.QQ 等一系列软件会自动变成英文界面,而且没有提供切换语言的设置. 啪了下 Google,找到了方法,直接在终端运行后重启 Chrome 即可更改. 英文 ...
WinForm为客户端程序必须在.NET Framework框架上运行 一.常用属性: 布局: AutoScroll:当控件内容超出可见区域是否显示滚动条: Autosize:当控件内容有超出时是否自 ...
一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version
方法二: 在 ...
想看sharepreference保存的键值对的数据,用到单元测,运行函数总是报这种错,且看不到file explorer--&data&对应工程包的xml文件:

我要回帖

更多关于 java for语句 的文章

 

随机推荐