2016-05-26 14 views
1

Neuling in einer IT-Welt mit einigen Anfänger-Probleme. Also, ich ging durch ein Tutorial und habe ein Problem gelöst, das ich selbst nicht lösen kann. Der Code ist unten:Java - Wenn Anweisung Probleme - ändern Bedingungen löscht die anderen Aussagen unter

boolean gameOver = true; 
    int score = 5000; 
    int levelCompleted = 5; 
    int bonus = 100; 

     if(score == 5000) 
      System.out.println("Your score is 5000"); 

    if(score > levelCompleted){ 
     System.out.println("Score is greater that levelCompleted"); 
     System.out.println("5000 is greater that 5"); 
     System.out.println("Some new text on true condition"); 
     } 

    if(score<5000){ 
     System.out.println("Score is equal to 5000"); 
     } 
     else 
     { 
     System.out.println("Condition is false"); 
     } 

    if((score < 5000) && (score > 1000)){ 
     System.out.println("Both conditions are true"); 
     } 
     else if(score<1000) 
     { 
     System.out.println("Else if condition is true"); 
     } 
     else 
     { 
     System.out.println("None of the condtitions are true!"); 


    if(gameOver == true){ 
     int finalScore = score + (levelCompleted * bonus); 
     System.out.println("Your final score was " + finalScore); 
     } 


    if(gameOver == true){ 
     score = 10000; 
     levelCompleted = 8; 
     bonus = 200; 
     int finalScore= score + (levelCompleted * bonus); 
     System.out.println("Your final score was " + finalScore); 
     } 


    System.out.println(score); 
    } 

    System.out.println(levelCompleted); 

    } 

} 

Der Ausgang des Code oben zeigt die erwarteten Ergebnisse und sie sind:

Your score is 5000 
Score is greater that levelCompleted 
5000 is greater that 5 
Some new text on true condition 
Condition is false 
None of the condtitions are true! 
Your final score was 5500 
Your final score was 11600 
10000 
8 

Aber, wenn ich ändern, wenn/else if/else-Anweisung die, wenn die Bedingung von

if ((score < 5000) && (score > 1000)) 

zu

if((score == 5000) && (score > 1000)) 

Wie Sie sehen können, habe ich nur von < zu == geändert, und ich bekomme die folgende Ausgabe.

Your score is 5000 
Score is greater that levelCompleted 
5000 is greater that 5 
Some new text on true condition 
Condition is false 
Both conditions are true 
5 

Also, was ist mit den anderen zwei if-s unten passiert?

Und wo sind die letzten zwei "stand-alone" system.out.println -s?

Auch, wo kommt die 5 von jetzt an? Ich nehme an, von levelCompleted Variable, aber wie?

Vielen Dank im Voraus für Ihre Hilfe und Erklärung!

+3

Ihre Vertiefung prüfen. – Jasper

+0

auch '== true' ist redundant. Es ist wie '* 1' oder' +0'. Beachten Sie, dass das Ergebnis von 'p == wahr 'immer gleich' p 'ist. – Pshemo

+0

Ja, ich weiß, dass wenn (p == wahr) ist das gleiche wie wenn (p), denn wenn standardmäßig erwartet wird, wahr zurückzukehren, aber ich folgte nur die Tutorials Tempo und Stil des Schreibens und als Anfänger es ist viel einfacher so. Die Sache ist, ich habe die offizielle Orakeldokumentation und einige andere respektable Dokumente und Bücher konsultiert und fand keine Antwort auf potentielle Probleme, wie man auf viele if-s, if-s und andere eingeht. – newbie

Antwort

0

Ein } fehlt. Siehe Jaspers Kommentar. Wenn Sie Eclipse verwenden, verwenden Sie Ctrl + Shift + F, um Ihren Code automatisch zu formatieren.

0

Sie vermissen eine schließende geschweifte Klammer nach

System.out.println("None of the condtitions are true!");