【问题标题】:Multiplying certain value in array based on certain condition in another array and storing value in a new array?根据另一个数组中的某些条件将数组中的某个值相乘并将值存储在一个新数组中?
【发布时间】:2013-03-29 21:42:55
【问题描述】:

我正在创建一个基于数组的程序,该程序可以帮助计算一些帮助学生提高技能的导师的津贴。该程序接收导师的数量,然后输入导师的姓名,询问导师帮助过多少学生,然后询问导师的学位水平(BS、MS、PhD)。导师将根据他们拥有的学位水平获得不同金额的报酬。因此,如果第一位导师(比尔)教过 5 名学生并拥有博士学位(每位学生 20 美元),那么他将获得 100.00 美元的报酬,以此类推(MS = 每位学生 15.00 美元,BS =每名学生 9.50)。

我的问题是,当我输入所有数据后,我只得到 0.0 的工资栏和 0.0 的总津贴。我要做的是基于在学位数组中输入的学位,你将教学数组(也就是教授的学生人数)乘以每个学生的金额,然后将该数字存储在一个名为津贴的新数组中。我已经重新安排,重新命名,并做了我能想到的一切,试图让津贴出现,但我没有选择,变得非常沮丧。因此,如果有人可以帮助我,将不胜感激。

        for(int pay=0; pay<numOfTutors; pay++) {
            if (degree[pay] == "BS") {
                stipend[pay] = taught[pay] * 9.50;
            }
            else if (degree[pay] == "MS") {
                stipend[pay] = taught[pay] * 15.00;
            }
            else if (degree[pay] == "PhD") {
                stipend[pay] = taught[pay] * 20.00;
            }
            sum+=stipend[pay];
        }    

【问题讨论】:

  • 你试过调试你的代码吗?逐行遍历它?
  • 是的,我一步步走过,重新排列,重新命名,取出东西,放入东西,还是没有用。我的工资栏一直在增加 0.0。
  • 它有助于为 SO 提供减少的代码示例。 IE。删除所有无关的代码(例如用一些硬编码的虚拟数据替换输入/输出),同时确保可以将代码复制/粘贴到 IDE 中,添加一些样板文件,并立即显示您的问题。
  • 另外,“并行数组”令人困惑。考虑创建一个类来保存 namesdegreestipendtaught 中的数据。
  • 请注意,感谢您提供有用的意见,我仍在从事该项目,我只是在继续之前需要这方面的帮助,不过还是谢谢您。

标签: java arrays store


【解决方案1】:

问题是您使用== 运算符而不是.equals() 方法来检查字符串是否相等。你应该改变表格的行

degree[pay] == "some_string"

degree[pay].equals("some_string")

或者,如果你想要不区分大小写的匹配,你可以使用

degree[pay].equalsIgnoreCase("some_string")

这是怎么回事:当你写 degree[pay] = "some_string" 时,你正在检查 引用相等,这对你正在做的事情不起作用,因为常量字符串和生成的字符串不会有同等参考。 .equals() 方法将检查相等值,这正是您想要的。

【讨论】:

  • 非常感谢,我简直不敢相信这是我看过的这么简单的事情,我的 (degree[pay] = "some_string") 是基于以前的项目而完全忘记的关于(.equals)。再次感谢您。
  • 不客气!如果它回答了您的问题,请标记一个答案(最好是我的:)!
  • 没问题!玩得开心编程:)
【解决方案2】:

使用String#equals 比较String 的内容。 == 运算符用于比较 Object 引用。因为被比较的 2 个值的引用不相等,所以数组 stipend 的任何薪酬调整都不会发生。替换

if (degree[pay] == "BS") {

if (degree[pay].equals("BS")) {

同样适用于“MS”和“PhD”字符串检查。

【讨论】:

  • 是的,刚刚从另一张海报中发现,不过谢谢,非常感谢!
猜你喜欢
  • 2018-04-23
  • 2022-12-04
  • 2015-12-28
  • 2016-07-20
  • 2020-10-18
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多