大家好,我是编程初学者,我的项目有问题

时间:2019-11-08 06:12:09

标签: java

在这里,如果我想要if语句的值,它将给我0.0,而不是我想要的如何解决这个问题的方法enter image description here

1 个答案:

答案 0 :(得分:0)

在代码段中,在方法 setMark()中,您从用户获取的字符串数组中的输入,而在 getPoints()方法中,您将字符串数组与串。这就是为什么您的if()块总是返回false的原因。例如:以下结果将始终为假。

 public static void main(String[] args) {
         String[] mark = new String[5];

         if(mark.equals("A+")){
             System.out.print("true");
         }
         else{
             System.out.print("false");
         }
    }

因此,在 getPoints()中,如果要计算总点数,则必须遍历mark [],然后检查每个数组元素的等级,例如“ A +”。像这样:

 public double  getPoints(){
        for(String s : mark){
            if(s.equals("A+") || s.equals("a+")){
                point+=5;
            }
            else if(s.equals("B+") || s.equals("b+")){
                point+=4.75;
            }
            //following remaining conditions
        }
    }