Problem mit meinem Programm

Hallo Leute stehe mit meinem Programm auf dem Schlauch ... kann mir jemand vielleicht sagen wie ich weiter machen kann.
Ich habe die Aufgabe bekommen mein geschriebenes programm einmal ein quadrat das von einem Scanner gelesen wird aus gibt und das gleiche für eine Raute ... nun ist meine Aufgabe diese beiden Programm zu einem zu verbinden und auszugeben sprich :

Es wird abgefragt ob quadrat oder eine Raute oder das programm beendet werden soll ... es soll dann eingegeben werden q für Quadrat, r für Raute und E zum beenden.... dann wie gross es sein soll bei der Raute nur mit geraden zahlen ... wenn man nun ein quadrat ausgibt soll grfagt werden "was nun" und je nachdem was man möchte beenden oder raute oder quadrat.

Mein problem ich lasse das Qauadrat ausgeben und möchte danach raute ausgeben springt es nicht weiter sondern gibt immernoch das Quadrat aus ... und den befehl zum beenden mit E konnte ich auch nicht einbinden mein kopf ist Matsch geworden würde mich über lösungen freuen, weil ich die nerven nicht mehr dazu habe hoffe ich kann mir jemand dabei helfen .... hier mein code ....::
____________________________________________________________________________________________________

import java.util.Scanner;
public class Übung {



static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {
System.out.println("Geben Sie 'Q' für Quadrat und 'R' für Rauten ein und zum Beenden 'E' ein: ");
String Eingabe = sc.next();
char c = Eingabe.charAt(0);

while (c != 'E' || c != 'e'){
Beenden();
System.out.println("beenden!");
Eingabe = sc.close();

}



{

if (c == 'Q' || c == 'q') {
Quadrat();
System.out.println("Als Nächstes? ");
Eingabe = sc.next();
}

else if (c == 'R' || c == 'r') {
Raute();
System.out.println("Als Nächstes? ");
Eingabe = sc.next();
}
}
}

static void Quadrat() {
System.out.println("N =");
int n = sc.nextInt();

System.out.print("+");
for (int i = 1; i <= n - 2; i++) {
System.out.print("-");
}
System.out.print("+");

for (int a = 1; a <= n - 2; a++) {
System.out.println();
System.out.print("|");
for (int b = 1; b <= n - 2; b++) {
System.out.print(" ");
}
System.out.print("|");

System.out.println();
}
System.out.print("+");
for (int i = 1; i <= n - 2; i++) {
System.out.print("-");
}
System.out.print("+");
System.out.println();

}

static void Raute() {
Scanner eingabe = new Scanner(System.in);
System.out.print("Geben Sie N ein: ");
int n = eingabe.nextInt();

if (n > 0 && n!=0 && n%2==0) {

for (int i = 0; i <= n / 2 - 1; i++) {
for (int j = 0; j < (n / 2 - (i + 1)); j++) {
System.out.print(" ");
}
System.out.print("/");
for (int k = 0; k < (i * 2); k++) {
System.out.print(" ");
}
System.out.print("\\");
System.out.println();
}

for (int i = n / 2 - 1; i >= 0; i--) {
for (int j = 0; j < (n / 2 - (i + 1)); j++) {
System.out.print(" ");
}
System.out.print("\\");
for (int k = 0; k < (i * 2); k++) {
System.out.print(" ");
}
System.out.print("/");
System.out.println();
}
} else
System.out.println("Bitte eine gerade Zahl eingeben!");
}
}
 

mihe7

Top Contributor
Bitte nächstes mal Code-Tags verwenden: [code=Java]Dein Code[/code] und den Code inkl. Einrückungen einfügen, dann erscheint das so schön wie hier:
Java:
import java.util.Scanner;

public class Übung {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.println("Geben Sie 'Q' für Quadrat und 'R' für Rauten ein und zum Beenden 'E' ein: ");
        String Eingabe = sc.next();
        char c = Eingabe.charAt(0);

        while (c != 'E' || c != 'e'){
            Beenden();
            System.out.println("beenden!");
            Eingabe = sc.close();
        }

        {

            if (c == 'Q' || c == 'q') {
                Quadrat();
                System.out.println("Als Nächstes? ");
                Eingabe = sc.next();
            }
            else if (c == 'R' || c == 'r') {
                Raute();
                System.out.println("Als Nächstes? ");
                Eingabe = sc.next();
            }
        }
    }

    static void Quadrat() {
        System.out.println("N =");
        int n = sc.nextInt();

        System.out.print("+");
        for (int i = 1; i <= n - 2; i++) {
            System.out.print("-");
        }
        System.out.print("+");

        for (int a = 1; a <= n - 2; a++) {
            System.out.println();
            System.out.print("|");
            for (int b = 1; b <= n - 2; b++) {
                System.out.print(" ");
            }
            System.out.print("|");
            System.out.println();
        }
        System.out.print("+");
        for (int i = 1; i <= n - 2; i++) {
            System.out.print("-");
        }
        System.out.print("+");
        System.out.println();
    }

    static void Raute() {
        Scanner eingabe = new Scanner(System.in);
        System.out.print("Geben Sie N ein: ");
        int n = eingabe.nextInt();

        if (n > 0 && n!=0 && n%2==0) {

            for (int i = 0; i <= n / 2 - 1; i++) {
                for (int j = 0; j < (n / 2 - (i + 1)); j++) {
                    System.out.print(" ");
                }
                System.out.print("/");
                for (int k = 0; k < (i * 2); k++) {
                    System.out.print(" ");
                }
                System.out.print("\\");
                System.out.println();
            }

            for (int i = n / 2 - 1; i >= 0; i--) {
                for (int j = 0; j < (n / 2 - (i + 1)); j++) {
                    System.out.print(" ");
                }
                System.out.print("\\");
                for (int k = 0; k < (i * 2); k++) {
                    System.out.print(" ");
                }
                System.out.print("/");
                System.out.println();
            }
        } else 
            System.out.println("Bitte eine gerade Zahl eingeben!");
    }
}

Dann: in Java schreibt man Namen für Variablen, Parameter und Methoden in lowerCamelCase, Typnamen (Klassen & Co.) dagegen in UpperCamelCase. Das solltest Du Dir von Anfang an angewöhnen, da es das Lesen von Code stark erleichtert.

Zum Problem: der Code ist nicht übersetzbar. Die Methode Beenden() existiert nicht und sc.close() gibt auch keinen String zurück.

Unabhängig davon ist die Bedingung der Schleife
Java:
        while (c != 'E' || c != 'e'){
            Beenden();
            System.out.println("beenden!");
            Eingabe = sc.close();
        }
immer wahr (c ist entweder kein 'E' oder kein 'e' oder weder noch).

Du kannst den Scanner wiederverwenden (brauchst also nicht in jeder Methode einen neuen anzulegen).
 
ok, vielen Dank für die schnelle Antwort .... ich habe nun
Java:
while]  (c == 'E' || c == 'e'){
         
            System.out.println("beende Programm!");
         
        }

geändert ... und wie mache ich das mit dem sc.close ... ich möchte E eingeben in den Scanner und den String beenden nur da ich leider Java anfänger bin fällt das mir ziemlich schwer, weswegen ich mich hier an die Gurus wende ....
 

mihe7

Top Contributor
Also mal langsam: Du möchtest eine Schleife, die so lange läuft, so lange der eingegebene Buchstabe weder ein 'e' noch ein 'E' ist. D. h. c darf kein 'E' UND außerdem kein 'e' sein: c != 'E' && c != 'e'.

Dann möchtest Du innerhalb der Schleife unterscheiden, ob ein 'q' ('Q') bzw. 'r' ('R') eingegeben wurde. Das hast Du im Prinzip schon - nur nicht in der Schleife:

Java:
while (c != 'E' && c != 'e') {
    if (c == 'q' || c == 'Q') {
        ...
    }
    else if (c == 'r' || c == 'R') {
        ...
    }
}

Die Schleife wird also beendet, wenn ein 'e' oder 'E' eingegeben wurde, d. h. nach der Schleife kannst Du das Programm beenden. Das funktioniert automatisch, weil ja keine weiteren Anweisungen mehr kommen.

Ein weiteres Problem besteht aber noch: wenn weder ein 'q' ('Q') noch ein 'r' ('R') eingegeben wurde, dann wird vom Benutzer keine neue Eingabe verlangt und das Programm landet in einer Endlosschleife :-(

Also stellst Du die Eingaben noch ein wenig um:
Java:
while (c != 'E' && c != 'e') {
    if (c == 'q' || c == 'Q') {
        quadrat();
    } else if (c == 'r' || c == 'R') {
        raute();
    }
    System.out.println("Als nächstes? ")
    eingabe = sc.next();
    c = eingabe.charAt(0);
}

Theoretisch müsstest Du noch abfangen, ob eingabe nicht leer ist, denn dann würde charAt(0) eine Exception auslösen.
 
Würde auch
Java:
while (!eingabe.equals("e")) {

(eingabe.equals("Q") || eingabe.equals("q"))

funktionieren? finde es mit eingabe.equals viel einfacher ?!
und wenn ich das so übernehme gibt es was , auf das ich achten sollte??
 
X

Xyz1

Gast
Das wäre möglich:
Java:
import java.util.Scanner;

public class Übung {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.println("Geben Sie 'Q' für Quadrat und 'R' für Rauten ein und zum Beenden 'E' ein: ");
        String eingabe = sc.nextLine().toLowerCase();

        while (!eingabe.equals("e")) {
            if (eingabe.equals("q")) {
                quadrat();
            } else if (eingabe.equals("r")) {
                raute();
            }

            System.out.println("Geben Sie 'Q' für Quadrat und 'R' für Rauten ein und zum Beenden 'E' ein: ");
            if (sc.hasNextLine()) { // there could be a problem, if its called after next integer...
                sc.nextLine();
            }
            eingabe = sc.nextLine().toLowerCase();
        }
    }

    static void quadrat() {
        System.out.println("N =");
        int n = sc.nextInt();

        System.out.print("+");
        for (int i = 1; i <= n - 2; i++) {
            System.out.print("-");
        }
        System.out.print("+");

        for (int a = 1; a <= n - 2; a++) {
            System.out.println();
            System.out.print("|");
            for (int b = 1; b <= n - 2; b++) {
                System.out.print(" ");
            }
            System.out.print("|");
            System.out.println();
        }
        System.out.print("+");
        for (int i = 1; i <= n - 2; i++) {
            System.out.print("-");
        }
        System.out.print("+");
        System.out.println();
    }

    static void raute() {
        System.out.print("Geben Sie N ein: ");
        int n = sc.nextInt();

        if (n > 0 && n != 0 && n % 2 == 0) {

            for (int i = 0; i <= n / 2 - 1; i++) {
                for (int j = 0; j < (n / 2 - (i + 1)); j++) {
                    System.out.print(" ");
                }
                System.out.print("/");
                for (int k = 0; k < (i * 2); k++) {
                    System.out.print(" ");
                }
                System.out.print("\\");
                System.out.println();
            }

            for (int i = n / 2 - 1; i >= 0; i--) {
                for (int j = 0; j < (n / 2 - (i + 1)); j++) {
                    System.out.print(" ");
                }
                System.out.print("\\");
                for (int k = 0; k < (i * 2); k++) {
                    System.out.print(" ");
                }
                System.out.print("/");
                System.out.println();
            }
        } else {
            System.out.println("Bitte eine gerade Zahl eingeben!");
        }
    }
}


Nebenbei sei angemerkt ich finde die Raute schön. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JeromeM90 Problem bei meinem Programm : Lottozahlen Java Basics - Anfänger-Themen 30
megachucky Problem bei meinem Videothek-Programm Java Basics - Anfänger-Themen 5
N Problem bei meinem Code Java Basics - Anfänger-Themen 10
F Methoden Kleines Problem mit meinem Glücksrad... Java Basics - Anfänger-Themen 9
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
G Was is falsch mit meinem program? (stringvergleich-problem) Java Basics - Anfänger-Themen 8
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
C Regex-Problem Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
M Problem in der Modellierung Java Basics - Anfänger-Themen 20
W Wo ist das URL-Problem ? Java Basics - Anfänger-Themen 1
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben