为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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 回答

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


0 回复 有任何疑惑可以回复我~

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

我再补充一点。

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

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

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

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


2 回复 有任何疑惑可以回复我~
#1

leehuahua 提问者

谢谢谢谢 明白了 我再好好看看
2015-05-26 回复 有任何疑惑可以回复我~

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

如把数组名改成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循环。

2 回复 有任何疑惑可以回复我~
#1

leehuahua 提问者

这么一说 我明白了 当时脑筋缺根弦 哈哈哈哈 谢谢谢谢
2015-05-26 回复 有任何疑惑可以回复我~
#2

Perona 回复 leehuahua 提问者

不客气~~~
2015-05-26 回复 有任何疑惑可以回复我~
#3

孟玉珏 回复 Perona

看到这里,我懂了。
2015-06-11 回复 有任何疑惑可以回复我~
#4

Perona 回复 孟玉珏

给你点个赞!
2015-06-11 回复 有任何疑惑可以回复我~
#5

吴東

脑袋突然间短路了.
2016-03-03 回复 有任何疑惑可以回复我~
查看2条回复

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

 下面的foreach怎么写  

0 回复 有任何疑惑可以回复我~
#1

Albenz

你这段代码应该是错的吧? 不是只能 int[] score = {} 么
2016-02-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信