黑马程序员技术交流社区
标题:
关于for语句加强的问题
[打印本页]
作者:
麦田守望者0812
时间:
2012-5-26 21:06
标题:
关于for语句加强的问题
int[] arr ={5,4,8,9,2};
selectSort(arr);
for(int i:arr/*=0;i<arr.length;i++*/){
System.out.println(arr[i]);
}
中 若用普通for循环可以正常打印 而是用for的加强语句时 却显示有误 为什么呀
作者:
蒋映辉
时间:
2012-5-26 21:08
for(int i:arr){
System.out.println(i);
}
这样用的 用再循环中声明的量来代表从数组中取出的
作者:
古银平
时间:
2012-5-26 21:22
本帖最后由 古银平 于 2012-5-26 21:28 编辑
class ForeachDome
{
public static void main(String[] args)
{
int[] arrs ={5,4,8,9,2}
for(int arr: arrs)
{
System.out.println(arr);
}
}
}
复制代码
你是想用foreach循环遍历数组?
for(int arr: arrs),冒号两边要不一样,就不会出现下列错误了,就能执行了。
ForeachDome.java:6: 已在 main(java.lang.String[]) 中定义 arr
for(int arr: arr)
^
ForeachDome.java:6: foreach 不适用于表达式类型
for(int arr: arr)
^
格式: for(type variableName : array | collection)
{
//variableName 自动迭代访问每个元素...
}
作者:
xieshuhua
时间:
2012-5-26 21:25
int[] arr ={5,4,8,9,2};
selectSort(arr);
for(int i:arr/*=0;i<arr.length;i++*/){
System.out.println(i);
}
i已经迭代为arr中的元素了,不能再用arr[i]来获取其中的元素了。
复制代码
作者:
逄焕玮
时间:
2012-5-26 23:01
普通for循环呢
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
i 表示的是数组的角标,所以打印arr[i]是可以的
而对于增强for循环
for(int i : arr){
System.out.println(i);
}
冒号后面的arr,表示一个实现Iterable接口的集合,而冒号前面的 i,则表示从arr集合中迭代出来的具体元素
想打印的话,直接打印 i 就可以,写arr[i]就不行了,因为它不是角标
作者:
路冬冬
时间:
2012-5-28 00:39
int i的i代表的就是int类型的变量,i所取的就是数组arr中的元素,arr[]中的元素有些大于arr.length所以会报越界异常,在for each中声明的变量访问的就是数组中的成员。
作者:
丁桂松
时间:
2012-5-28 16:26
为了此题特意写代码,包含详细注释!
package java基础知识.数组和常用算法;
public class 增强for循环 {
/**
* @param 增强for循环的简单介绍.
*/
public static void main(String[] args) {
// 在JDK 5.0之前我们列出一列数组.输出数据需要用下变的方法
int [] arr1 = {1,2,3,4,5,6};
for(int i =0;i<arr1.length;i++){
System.out.print(arr1[i]+" ");
}
//在JDK5.0以后.提出了一个增强for循环的语句.
int []arr2 ={1,2,3,4,5,6};
for(int temp :arr2){
System.out.print(temp+" ");
}
//其中temp是一个临时变量,用来存放每次遍历到的元素.如果是对象的话也可以进行输出.
String name [] ={"zhangsan","lisi","wangwu","zhouliu"};
for(String mingzi :name){
System.out.print(mingzi+" ");
}
// 二维数组,通过增强for循环也可以进行输出
int[][] arr = { { 2, 3, 1 }, { 3, 2, 3 }, { 5, 4, 3 } };
for(int []temp :arr){ //第一次遍历是数组类型的定义数组类型的临时变量temp
for(int i :temp){ //第二次遍历是数组内的元素 定义int类型的临时变量i
System.out.print(i+" ");
}
}
}
}
复制代码
作者:
风悠悠
时间:
2013-9-28 11:06
int[] arr ={5,4,8,9,2};
selectSort(arr);
int y=0;
for(int i:arr){
System.out.println(arr[y]);
y++;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2