关于intArray的疑问

关于intArray的疑问

package com.imooc.array;


public class ArrayDemo {


public static void main(String[] args) {

int[] intArray;

String[] strArray;

//创建数组

intArray = new int[5];

strArray = new String[10];

float[] f = new float[4];

//初始化数组

char [] ch = {'a','b','c'};

System.out.println(ch.length);

System.out.println(intArray[1]);

System.out.println(f[f.length-1]);

//循环为整数数组赋值

for (int i = 0; i < 5; i++) {

intArray[i]=i+1;

System.out.println(i+1);

}

//循环输出整形数组中的元素

System.out.println("整形数组intArray的值");

for (int i = 0; i < 5; i++) {

System.out.println(intArray[i]+ " ");

}

}

/*

这里有两个问题,第一个(从循环为整数数组赋值以下的代码)我直接在代码块中写System.out.println(i+1);和下面输出的有什么区别;第二个问题第二个for中为什么intArray[i]可以被调用,因为在上面提到上面的i和下面的i不一样

*/

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,intArray是在方法中定义的,不是在第一个for循环中定义,如:

http://img1.sycdn.imooc.com//climg/5d7a03d3098e5b0706340805.jpg

所以方法中的两个循环都可以使用intArray。

祝:学习愉快~

好帮手慕小班 2019-09-12 15:06:02

同学你好,1、第一个问题:直接在代码块中写System.out.println(i+1);和下面输出的有什么区别

在循环为整数数组赋值中,直接输出i+1的值,这是在循环中直接输出i+1的值,与数组没有任何关系http://img1.sycdn.imooc.com//climg/5d79ecd909e9ef7d07140172.jpg

2、第二个问题:for中为什么intArray[i]可以被调用

这是因为循环输出整形数组中的元素的for循环中,这里的i是重新定义的局部变量,作用范围只在这个for循环中有效,同样i从0开始直到i=4,对应intArray数组的下标-->intArray[0]、intArray[1]····这样在循环中输出,所以intArray[下标]这样来输出。

同学需要知道局部变量只在定义它的大括号内有效

http://img1.sycdn.imooc.com//climg/5d79ee5509fe437507300304.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕雪7491952 #1
    第二个intArray 不是在第一个for循环里被定义的吗(也就是说是第一个for循环的局部变量)只能在当前的代码块中被调用,为什么到第二个里面可以被使用呢
    2019-09-12 15:14:44
  • 慕用0526790 回复 提问者 慕雪7491952 #2
    首先你要先了解再你一开始用int[] intArray;跟intArray = new int[5];是在主方法里定义的,它已经有了默认值,并且所有数组元素都默认为0,而你在第一个for循环里执行操作后,相当于将数组的每一元素重新进行了赋值,也就是说对主方法中的数组元素进行了赋值操作,并不是在当前for循环里创建了第二个intArray,而你第二个for循环里则只是起的输出主方法中数组的每个元素,还有System.out.println(intArray[i]+ " ");中println改为print,要不然你后面的空格就没啥用了,每次执行都要换行
    2019-09-12 18:16:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师