关于java的foreach语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java的foreach语法相关的知识,希望对你有一定的参考价值。

--------写法一----------
int[] i=0,1,2,3;
for (int index:i)


---------写法二-------------
for (int index:0,1,2,3)


为什么写法二不可以?

因为java中数组是存储在堆中的,必须new出一个空间,0,1,2,3这就是几个数的集合没有开辟空间,index无法找到其内存空间,所以无法遍历 参考技术A for (int index:0,1,2,3)

改成
for (int index:new int[]0,1,2,3)

就可以了
参考技术B Java语法不允许写法二。“”在代码里除了可以表示数组初始化,还大量用于表示code block,放在表达式里面有可能造成编译器过于复杂。这大概是Java不允许类似写法二的原因吧

java中的foreach语法

public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int index: a)

System.out.print(a);




控制台输出的是[I@156ee8e
请问我错在哪里了?

Mark一个,马上帮你看看

是这样的,楼主你第一个错误是,类命名不对,首字母规范是大写,P117
第二
public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int index: a)

System.out.print(a);


程序输出的是a的地址,你sout没有放到循环里面
如果这样

public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int index: a)
System.out.print(a);


for里面的内容会执行三次,就是说会输出三次a的地址

如果你想输出数组里面的内容,你应该这样写
public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int i : a)
System.out.print(i);




希望可以帮到你,谢谢
参考技术A 你这是输出a[]数组的内存地址,应该改为
public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int b: a)
System.out.print(b);



本回答被提问者采纳
参考技术B 嘿,你的System.out.print(a);放在哪 啊??况且这是打印这个数组,又不是打印数组里的元素!!还有,类命最好取有意义的,养成好习惯

至于你打印出来的内容,是因为数组在java中是一个对象 ,打印对象都是这种形式的!

应该是这样的:

public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int index: a)
System.out.print(index);


追问

如果我要是输出1呢?怎么写

追答

你是说输出索引为1的元素??
这种形式不行,需要得到特定元素只能用原始的那种循环方式,这种形式在虚拟机内部保存循环对象的索引,是用来输出全部元素的一种简便方式!

参考技术C 这样输出的是数据a的逻辑地址,不是数组内容。
public class p177
public static void main(String[] args)
int[] a =new int[] 1,2,3;
for(int index=0;i<a.length;i++)
System.out.print(a[index]);




参考技术D a 是数组名,也只是一个数组引用变量,存放的内容是数组头元素的地址。

以上是关于关于java的foreach语法的主要内容,如果未能解决你的问题,请参考以下文章

关于java中c标签foreach的用法?

关于java中c标签foreach的用法?

java关于集合的遍历与增强for循环(foreach)的使用

关于java stream流中的peek方法和foreach的自我理解:

通俗易懂---关于java基础语法面试题

关于Java中异常的叙述正确的是:( ) A.异常是程序编写过程中代码的语法错误