Javaprogramm nach ausführung des gesammten Cods neu beginnen lassen

Lucaaa

Bekanntes Mitglied
Hallo!
ich habe folgendes Problem: ich habe ein Programm geschrieben (eclipse) das Text mit der Rot-Verschlüsselung (oder Cäsarverschlüsselung) verschlüsselt.
Programmausgabe:
zu verschlüsselnden Text eingeben:
"Beispieltext"
Um wie viele Stellen soll verschoben werden?
22
Verschlüsselter Text:
"lwedjfdlsjsoijfd"
Originaltext:
"Beispieltext"

jetzt will ich aber, dass das Programm dann eine Abfrage macht ob beendet werden soll und wenn nein wieder von vorne Anfängt. Habe schon versucht das ganze in eine Schleife zu schreiben und mit einem Switch zu machen kommen aber immer Fehler.
Hier der Code:
Java:
import java.util.Scanner;

public class rotcrypt {

   public static void main(String[] args) {
     Scanner scanner = new Scanner(System.in);
     System.out.println("zu verschlüssender Text:");
     String text = scanner.nextLine();

     System.out.println("Um wie viele Stellen soll verschoben werden (1 bis 127)");
     int offset = scanner.nextInt();
     int anzahlstellen = offset;
     if (offset >= 1 && offset <= 127) {
       char[] meinArray = text.toCharArray();
       char[] meinNeuesArray = verschluesseln(offset, meinArray);
       System.out.println("\nVerschlüsselter Text: (um " + anzahlstellen + " verschoben)");
       for (int i = 0; i < meinNeuesArray.length; i++) {
         System.out.print(meinNeuesArray[i]);
       }
       System.out.println("\n");
       meinNeuesArray = entschlüsseln(offset, meinNeuesArray);
       System.out.println("\nOriginalText:");
       for (int i = 0; i < meinNeuesArray.length; i++) {
         System.out.print(meinNeuesArray);
       }
       System.out.println("\n");
       scanner.close();
     } else
       System.err.println("Ungültiger Wert die Verschiebung muss zwischen 1 und 127 liegen");
   }

   public static char[] verschluesseln(int offset, char[] charArray) {
     char[] cryptArray = new char[charArray.length];
     for (int i = 0; i < charArray.length; i++) {
       int verschiebung = (charArray + offset) % 128;
       cryptArray[i] = (char) (verschiebung);
     }
     return cryptArray;
   }
   
   public static char[] entschlüsseln(int offset, char[] charArray) {
     char[] cryptArray = new char[charArray.length];
     int verschiebung;
     for (int i = 0; i < charArray.length; i++) {
       if (charArray - offset < 0)
         verschiebung = charArray - offset + 128;
       else
         verschiebung = (charArray - offset) % 128;
       cryptArray[i] = (char) (verschiebung);
     }
     return cryptArray;
   }
}
 
Zuletzt bearbeitet von einem Moderator:
Hallo Lucaaa,
spontan würde ich sagen, dass dir eine While Schleife helfen könnte.
Hier mal auf die schnelle ein kleiner Denkanstoß.

Liebe Grüße und schönen Restabend
-DjangoDieMango

P.s: Programmcode bitte immer in Code-Tags schreiben, danke!
Java:
boolean test = true; // Variable für While Schleife
while (test == true){ // Solange Variable test = true ; While Schleife läuft
   /// Mach irgendwas
            Scanner test =newScanner(System.in);
            System.out.println("beenden?  ja\nein ?");
            String antwort = test.nextLine();

  if(antwort.equals(nein)){ //Abfrage ob die Antwort nein war
   test = false; // wenn Antwort = Nein  => setze Variable auf false => Ende derWhile Schleife
  }else{
          //Mach was anderes
       }
}
 
Zuletzt bearbeitet:

InfectedBytes

Top Contributor
@DjangoDieMango Abfragen auf booleans, wie etwa test == true sind zwar vollkommen richtig, aber auch etwas unnötig und erschweren den Lesefluss. Stattdessen lieber:
Java:
if(test) { // anstatt test==true

}
// und umgekehrt:
if(!test) { // anstatt test==false bzw. anstatt test != true

}
 

Lucaaa

Bekanntes Mitglied
Erstmal Danke für eure Hilfe aber ich erhalte (wie bei allem was ich versucht habe) die Fehlermeldung, dass der Scanner die Zeile nicht finden kann,nachdem der verschlüsselte Text ausgegeben wurde:
 

Lucaaa

Bekanntes Mitglied
so

Java:
import java.util.Scanner;

public class rotcrypt {
   public static void main(String[] args)  {
     boolean test = true;
     while (test == true) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("zu verschlüssender Text:");
       String text = scanner.nextLine();
       
       System.out.println("Um wie viele Stellen soll verschoben werden (1 bis 127)");
       int offset = scanner.nextInt();
       int anzahlstellen = offset;
       if (offset >= 1 && offset <= 127) {
         char[] meinArray = text.toCharArray();
         char[] meinNeuesArray = verschluesseln(offset, meinArray);
         System.out.println("\nVerschlüsselter Text: (um " + anzahlstellen + " verschoben)");
         for (int i = 0; i < meinNeuesArray.length; i++) {
           System.out.print(meinNeuesArray[i]);
         }
         System.out.println("\n");
         meinNeuesArray = entschlüsseln(offset, meinNeuesArray);
         System.out.println("\nOriginalText:");
         for (int i = 0; i < meinNeuesArray.length; i++) {
           System.out.print(meinNeuesArray[i]);
         }
         System.out.println("\n");
         scanner.close();
       } else
         System.err.println("Ungültiger Wert die Verschiebung muss zwischen 1 und 127 liegen");
     }
     Scanner reader = new Scanner(System.in);
     System.out.println("Weiter [J/N] ?");
     String antwort = reader.nextLine();
     antwort.toLowerCase();
     if (antwort == "n") {
       test = false;
       System.exit(0);
     }
     reader.close();
   }

   public static char[] verschluesseln(int offset, char[] charArray) {
     char[] cryptArray = new char[charArray.length];
     for (int i = 0; i < charArray.length; i++) {
       int verschiebung = (charArray[i] + offset) % 128;
       cryptArray[i] = (char) (verschiebung);
     }
     return cryptArray;
   }

   public static char[] entschlüsseln(int offset, char[] charArray) {
     char[] cryptArray = new char[charArray.length];
     int verschiebung;
     for (int i = 0; i < charArray.length; i++) {
       if (charArray[i] - offset < 0)
         verschiebung = charArray[i] - offset + 128;
       else
         verschiebung = (charArray[i] - offset) % 128;
       cryptArray[i] = (char) (verschiebung);
     }
     return cryptArray;
   }
}
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
..... die Fehlermeldung, dass der Scanner die Zeile nicht finden kann,nachdem der verschlüsselte Text ausgegeben wurde:
Wie lautet die Fehlermeldung? (am besten per Copy&Paste hier im Forum posten)

Anmerkungen zu deinem Code:
Klassennamen werden groß geschrieben
while(test == true) kann gekürzt werden auf while(test). Der Vergleich auf == true erzeugt wieder nur einen boolschen Ausdruck.

Java:
....
       } else
         System.err.println("Ungültiger Wert die Verschiebung muss zwischen 1 und 127 liegen");
     }
....
      if (charArray[i] - offset < 0)
         verschiebung = charArray[i] - offset + 128;
       else
         verschiebung = (charArray[i] - offset) % 128;
.....
Auch wenn es der Compiler erlaubt, verwende in solchen Fällen ebenfalls die Klammern. Schon oft genug erlebt das einer der Zweige ergänzt wurde ohne Klammern zu setzen -> unvorhergesehenes Verhalten.

if (antwort == "n") { Strings werden mit equals nicht mit == verglichen
 

Lucaaa

Bekanntes Mitglied
Die Fehlermeldung:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at rotcrypt.main(rotcrypt.java:11)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
hebein Mit Javaprogramm webseiten automatisiert befüllen und ausführen Java Basics - Anfänger-Themen 6
L Hilfe bei Javaprogramm. Java Basics - Anfänger-Themen 3
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
P Javaprogramm mit einer bestimten Version starten Java Basics - Anfänger-Themen 5
K Erste Schritte Javaprogramm Java Basics - Anfänger-Themen 2
R .txt in mein Javaprogramm hineinschmelzen Java Basics - Anfänger-Themen 6
Q Compiler-Fehler Javaprogramm wird manchmal nicht ausgeführt? Java Basics - Anfänger-Themen 4
S Javaprogramm mit Parameter starten? Java Basics - Anfänger-Themen 21
C Javaprogramm auf der Kommandozeile starten Java Basics - Anfänger-Themen 5
J JavaProgramm als Bildschirmschoner verwenden Java Basics - Anfänger-Themen 10
M Javaprogramm mit Bildern als .jar-Datei exportieren(in Eclipse) Java Basics - Anfänger-Themen 10
H javaprogramm mit .exe dateiendung Java Basics - Anfänger-Themen 4
G Javaprogramm auf USB-Stick mit JRE Java Basics - Anfänger-Themen 8
M Javaprogramm darf nur einmal gestartet werden Java Basics - Anfänger-Themen 3
S Fehler in Javaprogramm, was mache ich falsch? Java Basics - Anfänger-Themen 9
A Javaprogramm kann nicht in der Console ausgeführt werden Java Basics - Anfänger-Themen 12
L Probleme beim ersten JavaProgramm! Java Basics - Anfänger-Themen 4
V Javaprogramm aus einem anderen Javaprogramm aufrufen Java Basics - Anfänger-Themen 4
U Exe aus Javaprogramm erstellen Java Basics - Anfänger-Themen 14
G Mit Javaprogramm Outlook öffnen Java Basics - Anfänger-Themen 5
7 Javaprogramm anhalten Java Basics - Anfänger-Themen 10
V Wie beende ich ein Javaprogramm Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
D Programmieren nach UML Java Basics - Anfänger-Themen 2
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
K log4j nach log4j2 überführen Java Basics - Anfänger-Themen 0
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Zahlungen nach Monat filtern Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
R JDK installieren Durcheinander nach installation von SE 14.02 Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
B DateTimeFormatter nach LocalDateTime, wenn dd.MM.yyyy oder dd.MM.yyyy mm:hh Java Basics - Anfänger-Themen 5
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
S Wohin kommt das „abstract“? Vor oder nach „public“/ „private“ /... Java Basics - Anfänger-Themen 3
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Umstieg von C# nach Java Java Basics - Anfänger-Themen 18
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
M Untersuchen ob ein Graph nach entfernen einer Kante immer noch zusammenhängend ist Java Basics - Anfänger-Themen 70
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben