栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

表达式的类型必须为数组类型,但已解析为浮点型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

表达式的类型必须为数组类型,但已解析为浮点型

在执行 相反的* 操作时,您正在

score
为参数分配类变量的值。换一种说法:
sco
*

您的代码说:

sco = score;

但是您应该做的是:

score = sco;

在这两个功能,你需要 切换顺序

score
sco
使
score
得到的价值
sco

就您的错误而言,

setScore(float sco, intid)
您在参数中定义
sco
为a,
float
但您尝试将其作为数组访问(通过说
sco[Id] = score
)。这就是为什么您收到错误消息的原因。

The type of the expression must be an array type but it resolved to float

就像我说的,您可以通过再次切换顺序来解决此问题:

sco[Id] = score;

进入:

score[Id] = sco;

编辑:

就这一部分而言:

我对应该放在括号中的内容感到困惑,这本书要求我放置“ float []分数”>而不是“ float []
sco”,但是它不起作用,因此在进行了几次试验后我进行了一些编辑。这部分编码通常描述了重载方法,该方法存储了5个主题的分数。

由于您想知道如何对参数和类变量使用相同的名称(如@Smutje所述),因此应使用关键字

this

这样,您就不会有任何歧义

score

  • this.score
    属于您的被调用类
    Score
    ,可以在该类内部的任何函数中使用。它对于班级中的所有内容都是可见的。

  • score
    是函数局部的函数参数
    setScore()
    ,只能在内部使用
    setScore()
    。它仅在函数内部可见。

因此,包括所有提及的内容,您应该进行以下更改:

更改:

public void setScore(float sco, int id){    sco[id] = score;}void setScore(float[] sco){    sco = score;}

至:

public void setScore(float score, int id) // changed sco to score{    this.score[id] = score;   // switched order, added keyword this}void setScore(float[] score) // changed sco to score{    this.score = score;  // switched order, added keyword this}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400022.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号