老师为什么我把ave的值放在大括号外面就可以,放在里面就报错。现在这个是报错的代码

老师为什么我把ave的值放在大括号外面就可以,放在里面就报错。现在这个是报错的代码

public class AverageDemo {

    public void average(float[] arr){

        double a;

        double sum=0;

        double ave;

        for(int i=0;i<arr.length;i++){

        a=arr[i];

        sum+=a;

    ave=sum/5;

    }

   

    

    System.out.println("数组的平均值为:"+ave);//求数组元素的平均值

}

public static void main(String[] args) {

float[] arr={78.5f,98.5f,65.5f,32.5f,75.5f};

AverageDemo ave=new AverageDemo();

ave.average(arr);//定义对象

//创建float类型的数组并初始化

//调用方法求平均值并打印输出

}

}


正在回答

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

2回答

同学你好,局部变量在使用前必须赋值,因for可能会不执行,当i小于数组长度时,则无法运行for循环,则ave也就无法赋值,所以出现编译性错误。同学可以为ave设置默认值,或者在for循环外进行赋值。

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

好帮手慕小尤 2019-11-20 09:54:19

同学你好,因java不允许使用没有任何赋值的变量的,所以建议为ave设置默认值,然后在for循环外输出。修改后代码如下:

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

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

  • 提问者 linhaopower #1
    先问下为什么ave放在里面就会报错呢
    2019-11-20 20:07:35
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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