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

不太理解6-8

为什么代码中根本没有hobby 只有hobbys ,可是在foreach中却出现了hobby?

正在回答

3 回答

自已定义一个变量,属于数组hobbys。

for(String hobby : hobbys)

for(String abc : hobbys)

for(String stu_123 : hobbys)

都可以啊,hobby就是自定义的。


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

其实不一定非要是hobby和hobbys。在这里,hobby是另一个变量,hobbys只是一个数组名。换一种语法格式或许会更能便于理解。

for( type var : ArrayName)

     statement block;

在这里,type是变量var的类型;而变量var用于接受每次遍历数组时,数组中的元素;ArrayName为数组名。foreach是从头到尾的依次读取数组中的元素。在每一次循环迭代时,都要检索数组中的下一个元素并将其保存在变量var中。也就是说每一次遍历循环,var都自动获得一个等于ArrayName数组中的下一个元素的值。循环不断重复,直到遍历到数组的全部元素为止。由于变量var是用来存放数组ArrayName的元素的,所以变量var的类型type就应该与数组中的元素类型一致或兼容。

   可以考虑下,foreach循环会一直迭代,直到检查完数组中的全部元素,可是在如何使用foreach时候,提前终止循环?

...

可以用break语句提前终止foreach循环。

例如:只求和数组中的前五个元素的和:

...

int [] nums = {2,3,1,4,5,6,7,8,9};

int sum = 0;

for ( int x : nums)

{

    System.out.println(“当前数组元素的值为:”+x);

    int i = 0;

    i++

    sum += x;

    if( i == 5) 

    break;

}

再思考一下,foreach中的变量var是用来存放数组ArrayName的元素的,那么,在循环体内对变量var赋值,能否影响数组的值呢?可以自己写代码验证。

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

for(String hobby : hobbys)

你可以这么理解:

首先定义一个变量:String hobby;

然后把hobby赋值为hobbys数组中的每一个元素,开始遍历。

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

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165261    人
  • 解答问题       17582    个

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

进入课程

不太理解6-8

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