2 Stimmen

Was ist an dieser Bedingung falsch?

Ich versuche, eine Methode zu entwickeln, die prüft, ob 3 Längen ein Dreieck bilden können. Ich glaube, ich mache eine Art Syntaxfehler, aber ich kann nicht herausfinden, was es ist.

Hier ist der entsprechende Teil des Codes: (es ist in Java)

public static void trya (int a, int b, int c)
{
    if (c>(a+b))
    {
        System.out.println ("yes") ;
    }
    else
    {
        if (b>(a+c)) 
        {
            System.out.println ("yes") ;
        }
    }
    else 
    { 
        if (a>(b+c))
        {
            System.out.println ("yes") ;
        }
    }
    else
    {
        System.out.println ("no") ;
    }

}

Dies ist die Fehlermeldung, die ich erhalte:

tryangle.java:17: 'else' without 'if'
        else 
                ^

0 Stimmen

Und was sagt Ihnen die Fehlermeldung?

0 Stimmen

Es wäre hilfreich, wenn Sie uns die Fehler mitteilen würden, die Sie sehen, oder einen Hinweis auf por qué Sie denken, Sie machen einen Syntaxfehler

0 Stimmen

Welche Fehlermeldung erhalten Sie? Außerdem wäre eine Verbesserung, wenn Sie schreiben würden else if (condition) {} anstelle von else { if (condition) {} } . java.sun.com/docs/books/tutorial/java/nutsandbolts/if.html

13voto

JSBձոգչ Punkte 39615

Sie haben zwei else Blöcke für die erste if . Versuchen Sie es mit else if :

public static void trya (int a, int b, int c)
{
    if (c>(a+b))
    {
        System.out.println ("yes") ;
    }
    else if (b>(a+c)) 
    {
        System.out.println ("yes") ;
    }
    else if (a>(b+c))
    {
        System.out.println ("yes") ;
    }
    else
    {
        System.out.println ("no") ;
    }
}

11voto

Dancrumb Punkte 24965

Da Sie Studentin sind, halte ich es für angemessen, Sie auf die Kontrollfluss-Anweisungen Teil der Java-Online-Dokumentation.

4voto

BalusC Punkte 1034465

Dies ist ungültig:

if (cond A) {
    // ...
} else {
    if (cond B) {
        // ...
    }
} else {
    if (cond C) {
        // ...
    }
}

Sie sollte vielmehr lauten:

if (cond A) {
    // ...
} else if (cond B) {
    // ...
} else if (cond C) {
    // ...
}

Mehr Informationen unter dieses Sun-Tutorial .

4voto

fredoverflow Punkte 245881

Ich persönlich mag es nicht, wenn if/else sehr viel.

public static boolean isValidTriangle(int a, int b, int c)
{
    return (c > a + b) || (b > a + c) || (a > b + c);
}

public static void trya(int a, int b, int c)
{
    System.out.println(isValidTriangle(a, b, c) ? "yes" : "no");
}

2voto

Yaron Adler Punkte 492

So sollte es sein:

public static void trya (int a, int b, int c) 
{ 
    if (c>(a+b)) 
    { 
        System.out.println ("yes") ; 
    } 
    else if (b>(a+c))  
    { 
        System.out.println ("yes") ; 
    } 
    else  if (a>(b+c)) 
    { 
        System.out.println ("yes") ; 
    } 
    else 
    { 
        System.out.println ("no") ; 
    } 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X