foreach 为什么 for(int score:scores) 为什么括号里面score 没有s 难道 他还能识别英语的单复数形式?

来源:6-8 使用 foreach 操作数组

leehuahua

2015-05-25 22:03

// 定义一个整型数组,保存成绩信息

int[] scores = { 89, 72, 64, 58, 93 };

        Arrays.sort(scores);

// 对Arrays类对数组进行排序

        

// 使用foreach遍历输出数组中的元素

for(int score:scores){        /////  *************这里括号里的的第一个是score  而不是scores  可是定义的是       ///////////                           *****************scores   没有定义score

System.out.println(score);

}


写回答 关注

4回答

  • 小丑不跳梁666
    2017-05-15 13:36:45

    就是说这个是一个新的方法


  • Wang_Yu
    2015-05-25 23:00:04

    楼上的@Perona已经回答的很详细了

    我再补充一点。

    你的问题所在是完全没有了解for each的用法。

    for(int score:scores)这个方法第二个参数一般用来接收一个数组或者集合的对象。 第一个参数这是这个数组或者集合中元素的类型。

    用通俗的语言解释就是。首先或者scores这个变量中第一个元素的值。赋值给score。然后在for循环中可对score进行操作。

    而scores和score则是变量名。是自定义的。


    leehua...

    谢谢谢谢 明白了 我再好好看看

    2015-05-26 11:10:53

    共 1 条回复 >

  • Perona
    2015-05-25 22:37:49

    如果我告诉你,这个变量名是自定义的,你会不会好失望~~~但是我还是要深深的毫不留情得告诉你,没错这个就是随便取的。

    如把数组名改成score,把变量名改为i

    代码如下:

    import java.util.Arrays;
    
    public class HelloWorld {
        
        public static void main(String[] args) {
            
        	// 定义一个整型数组,保存成绩信息
    		int[] score = { 89, 72, 64, 58, 93 };
            
    		// 对Arrays类对数组进行排序
    		Arrays.sort(score);
            
    		// 使用foreach遍历输出数组中的元素
    		for ( int i:score ) {
    			System.out.println(i);
    		}
    	}
    }

    也可以把变量名改为J,

    代码如下

    import java.util.Arrays;
    
    public class HelloWorld {
        
        public static void main(String[] args) {
            
        	// 定义一个整型数组,保存成绩信息
    		int[] score = { 89, 72, 64, 58, 93 };
            
    		// 对Arrays类对数组进行排序
    		Arrays.sort(score);
            
    		// 使用foreach遍历输出数组中的元素
    		for ( int j:score ) {
    			System.out.println(j);
    		}
    	}
    }

    有没有发现,效果都一样~~~~

    值得注意的是这种foreach循环在编译的时候会强制检查数组对象类型是否是int类型,如果不是会报编译错误。

    有兴趣就去看一下JDK1.5的新特性泛型foreach循环。

    吴東

    脑袋突然间短路了.

    2016-03-03 09:43:31

    共 5 条回复 >

  • leehuahua
    2015-05-25 22:04:20

    如果定义的是 上面定义的是 int score[]={89,72,64,58,93};

     下面的foreach怎么写  

    Albenz

    你这段代码应该是错的吧? 不是只能 int[] score = {} 么

    2016-02-01 14:49:18

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165623 学习 · 17587 问题

查看课程

相似问题