2014-09-19 53 views
-1

Java数组歇我得在它的字符串数组。在这个例子中,我将使用一个充满类的数组。而且还有一个数组,其等级通过用户交互得到填补。现在在特定的序列号

,我就拥有了一切,除了其中最后两个班这给更多的研究点,那么剩下的印刷得到双倍的一部分工作,我想不通这哪里出了问题。

一些代码有荷兰人的名字所以这里的翻译列表:
Cijfer是等级
vakken是类

public static void main (String[] args) { 

    Scanner input = new Scanner(System.in); 
    final int MAX_ECTS = 39; 
    int ects = 0; 
    final int ECTS_VAK = 3; 
    final int ECTS_PROJECT = 12; 
    String[] vakkenArray = {"Programming", "Business", "Infrastructure", "Databases", "User Interaction", "Project Fasten Your Seatbelts", "Project Agile Developement"}; 
    double[] cijferArray = new double[7]; 

    for (int i = 0; i < cijferArray.length; i++) 
    { 
     System.out.println("Voer A.U.B het cijfer in voor " + vakkenArray[i]); 
     cijferArray[i] = input.nextDouble(); 
    } 

    for (int i = 0; i < vakkenArray.length; i++) 
    { 
     if (i < 5) 
     { 
      if (cijferArray[i] >= 5.5) 
      { 
       ects = ects + 3; 
       System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + ECTS_VAK); 

     } 

     if (cijferArray[i] <= 5.5) 
     { 
      System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + 0); 
     } 

    } 
    else 
    { 
     if (vakkenArray[i].equals("Project Fasten Your Seatbelts") && (cijferArray[i] >= 5.5)) 
     { 
      System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + ECTS_PROJECT); 
      ects = ects + 12; 
     } 
     else 
     { 
      System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + 0); 
     } 

     if (vakkenArray[i].equals("Project Agile Developement") && (cijferArray[i] >= 5.5)) 
     { 
      System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + ECTS_PROJECT); 
      ects = ects + 12; 
     } 
     else 
     { 
      System.out.println("Vak/Project:" + vakkenArray[i] + " Cijfer:" + cijferArray[i] + " ECTS Behaald: " + 0); 
     } 
    } 


    System.out.println("Totaal behaalde ECTS: " + ects + "/39");  

} 

这是我的代码的输出:

Vak/Project:Programming Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Business Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Infrastructure Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Databases Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:User Interaction Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Fasten Your Seatbelts Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Fasten Your Seatbelts Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Agile Developement Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Agile Developement Cijfer:5.0 ECTS Behaald: 0 
Totaal behaalde ECTS: 0/39 

这是应该的:

Vak/Project:Programming Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Business Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Infrastructure Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Databases Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:User Interaction Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Fasten Your Seatbelts Cijfer:5.0 ECTS Behaald: 0 
Vak/Project:Project Agile Developement Cijfer:5.0 ECTS Behaald: 0 
Totaal behaalde ECTS: 0/39 

如何看项目得到双面印刷。

+5

不通过''==操作符比较字符串。使用'equals'方法。 ''==比较对象引用(在计算机存储器地址),而不是字符串对象值。 – 2014-09-19 17:02:17

+0

好吧会的。 我不习惯java的,只是还没有那么...... – 2014-09-19 17:03:52

+0

检查本教程例如:http://www.javabeginner.com/ – 2014-09-19 17:04:41

回答

0

我已经改变else语句来为以下固定它:

if (vakkenArray[i].equals("Project Fasten Your Seatbelts") 
     && (cijferArray[i] <= 5.5))