如何解决方法重复调用

如何解决方法重复调用

老师好,目前我遇到的问题是,当float[] a = pm.initScore(); 感觉a被赋值了,但是方法也被调用了一次,导致输入1,初始化数学成绩之前,在之前就会被重复执行一次。

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

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

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


正在回答 回答被采纳积分+1

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

3回答
好帮手慕雪 2019-08-12 15:57:36

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

而红框处那行的代码,改成只声明float[]a就可以了。祝:学习愉快

  • 提问者 君莫邪1 #1
    我试过这种操作,如果这样操作,挥导致7其他case过去不到a的值而报错,如果其他case 也调用此方法,则会同样执行初始化成绩。
    2019-08-13 16:14:16
  • 好帮手慕雪 回复 提问者 君莫邪1 #2
    那是肯定的,正常的逻辑就是先初始化,再做别的工作呀。你的报错是因为缺少必要的逻辑判断。求平均值时先判断一下a是不是为null等。
    2019-08-13 16:27:49
好帮手慕雪 2019-08-11 11:10:05

1)initScore()中定义的数组,作用域就是在initScore中,一出此方法,则此系统会不定时销毁的。这个是没关系的。2) @qq_不断蜕变青春_24208832 这里写的tatic float[]arr={1};那么arr的长度为1,当你想用arr[1]时,则会rrayIndexOutOfBoundsException。所以这样写是不可取的。祝:学习愉快

  • 提问者 君莫邪1 #1
    老师我想实现的是,先弹出菜单,当输入1的时候,在执行initScore()方法,初始化数学成绩,而不是刚运行,就先执行initScore()方法
    2019-08-12 15:26:44
可得藏好哟 2019-08-10 21:38:06

这是在调用方法,不是在调用变量赋值到数组a[]。

正确调用,将你的数组定为全局变量

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

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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