2014-03-19 24 views
0

嘿,我最近開始使用Java,並且我正在寫一個程序時遇到問題。我見過老師如何完成他的解決方案,但我沒有看到我的解決方案與他相比有什麼不同,除了我在if語句中使用了不同的等號,並且名稱不同。當「使用不同的等於」代碼不起作用

誰能告訴我爲什麼我可能會得到一個0.0而不是實際的數字等級?

*甲等*

public class Grade 
{ 
private String grade; 

public Grade(String getGrade) 
{ 
    grade = getGrade; 
} 

public double getNumericGrade() 
{ 
double total = 0; 
double add = 0; 

    String firstLetter = grade.substring(0, 1); 
    if (grade.length() > 1) 
    { 
     String minusOrPlus = grade.substring(1, 2); 
     if(minusOrPlus == "+") 
      add = 0.3; 
     if(minusOrPlus == "-") 
      add = -0.3; 
    } 

    if (firstLetter == "A") 
    { 
     total = 4; 
     if (add < 0) 
      total = total + add; 
    } 
    else if (firstLetter == "B") 
     total = 3 + add; 
    else if (firstLetter == "C") 
     total = 2 + add; 
    else if (firstLetter == "D") 
     total = 1 + add; 
    else if (firstLetter == "F") 
     total = 0; 

    return total; 
} 
} 

伊夫測試,看看我的測試是錯誤的,但如果我把老師編寫我的測試工作正常,所以我知道它不是這一點。但在這裏它是無論如何..

* GradeTester *

import java.util.Scanner; 

public class GradeTester 
{ 
public static void main (String[] args){ 
    Scanner in = new Scanner(System.in); 


    System.out.print("Hey what letter grade did you get ? : "); 
    String letterGrade = in.next(); 
    Grade x = new Grade(letterGrade); 

    System.out.print("Your letter grade was " + letterGrade + " That means your number grade is " 
    + x.getNumericGrade()); 
    System.out.println(""); 



} 
} 

如果你能幫助我走出這將是真棒。

感謝, 彌敦道

+3

'firstLetter ==「X」'不要再...... – Pshemo

+2

「使用不同的_except對我來說等於在如果statements_」還有就是你的問題... – csmckelvey

+0

我強烈建議學習使用調試器。逐步完成該計劃將立即發現問題。 – chrylis

回答