Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, ich bin ein Javaanfänger und habe hier versucht folgende Übungsaufgabe zulösen. Der Code wird aber nicht kompiliert weil irgendwo ein Fehler ist. Es handelt sich um Aufgabe 4. Programmieraufgaben
Kann mir jemand helfen?
Java:
import java.util.Scanner;
public class koordinate {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
int x1=1; //deklaration
int x2=2;
int y1=2;
int y2=1;
int flaeche;
int erg1=1;
int erg2=1;
System.out.print("CAD");
while (x1+x2==0 || y1+y2==0){
System.out.println("Erster Eckpunt der X-Koordinate:"); //Schleife der Eingabeaufforderungen
x1=scan.nextInt();
System.out.println("Erster Eckpunt der Y-Aoordinate:");
y1=scan.nextInt();
System.out.println("Zeiter Eckpunkt der X-Koordinate:");
x2=scan.nextInt();
System.out.println("Zweiter Eckpunkt der Y-Koordinate:");
y2=scan.nextInt();}
while (erg1==0 || erg2==0) {
erg1=x1+x2; //Schleifenkörper mit den Rechtecksberechnungen
if (erg1 < 0)
{erg1= 0-erg1;}
erg2=y1+y2;
if (erg2 < 0)
{erg2=0-erg2;}
flaeche=erg1*erg2;
System.out.print("Breite:"+erg1+"Höhe:"+erg2+ "flaeche:"+flaeche);
}
scan.close();
}
}
Ich sehe so auf die schnelle auch keinen Syntax Error.
Wenn du einen Fehler hast egal ob Syntax Error oder RuntimeException poste diesen doch bitte mit ansonsten wird das ein Ratespiel.
Tipps:
Rücke den Code korrekt ein dann sieht man fehlende Klammern recht schnell.
Den Inhalt deines if-Blocks solltest du (auch wenn es nur 1 Zeile ist) nicht so in eine Zeile mit Klammer schreiben.
Java:
if(Bedingung) {
// Code
}
Dadurch wird dein Code nur übersichtlicher und lesbarer für dich aber auch für andere.
Und wenn du Code hier postest dann entferne doch bitte unnötige Leerzeilen, das bläht den Code nur unnötig auf und man mehr scrollen und sieht nicht soviele Informationen auf einen Blick
Dann liegt es doch nahe, nachzusehen warum es nicht weiter geht.
Dabei stößt man auf:
Java:
while (x1+x2==0 || y1+y2==0){ ... }
Die Bedingung ist anscheinend nicht erfüllt, da die Schleife nicht betreten wird.
Der Deklaration von x1, x2, y1, y2 etwas weiter oben ist zu entnehmen, dass die paarweise Addition wohl nicht 0 ist....
Abhilfe schafft in deinem Kontext wohl das Initialisieren von x1, x2, y1, y2 mit 0
oder ein do-while-Konstrukt, sodass der Schleifen-Body mindestens einmal durchlaufen wird.
Wenn ich das mache, dann wird die schleife einmal durchgeführt aber nicht länger. Sie wiederholt sich aber nicht und es werden keine Ergebnisse der Aufgabe berechnet.
Überprüfe doch bitte einmal deine Schleifenbedingungen.
Code:
while (x1+x2==0 || y1+y2==0){
wäre in deinen Fall 3==0 || 3==0, somit wird die Schleife nie durchlaufen.
Wenn dann musst die x und y mit 0 initialisieren.
Wenn du diese Schleife mehrmals durchlaufen willst ohne die Bedingung zu ändern musst du am Ende der Schleife die Werte für x und y wieder auf 0 zurücksetzen.
Das gleiche gilt für deine Schleife die deine Ergebnisse berechnet. Die Bedingung zum Durchlaufen dieser Schleife ist nie gegeben.
Entweder du änderst diese Bedingungen oder setzt die Variablen richtig.
Weiters wirst du das Problem bekommen das du den Scanner schließt obwohl du diesen in deiner nächsten Iteration noch verwenden möchtest.
Gehe doch am Besten die Logik deines Programmes am Papier mal durch, dann fällt dir das Problem gleich auf.