Hallo zusammen,
ich schreibe gerade an einer kleinen CMD Version meines ersten "großen" Programms und bin auf einen unerwarteten Fehler gestoßen...
Erläuterung:
In meinem Programm werde ich verschiedene Kunden verwalten und je nach Kunde ein spezielles Programm starten. Angefangen habe ich mit der Erstellung der Kunden. Allerdings erhalte ich den oben genannten Fehler in der Main Funktion.
Ich lasse den Benutzer eine Zahl stellvertretend für den Aufruf einer Funktion eingeben. Diese Zahl wird per switch überprüft und startet das entsprechende Programm.
In meinem Fall: CreateCustomes. Hier gibt es ebenfalls einen Scanner und es scheint so, als ob die While Schleife auf den neuen Scanner reagiert sobald nextInt() aufgerufen wird.....
Ich hab mal allen unnötigen Code entfernt:
Mit wird auch als Ursprung des Fehlers Zeile 34 der Main angeben.... aber hier ist nur:
command = keyboard.nextInt();
Was noch lange noch nicht ablaufen sollte, da der Switch Case 3 ja eine Funktion aufruft und erst dann zum Break gehen sollte, wenn der Case abgearbeitet wurde....
Bitte nicht auf die Fehlenden catch Anweisungen achten. Lerne erst noch Java und bin noch nicht soweit
Vielen Dank schonmal.
Grüße,
Sorainthy
ich schreibe gerade an einer kleinen CMD Version meines ersten "großen" Programms und bin auf einen unerwarteten Fehler gestoßen...
Erläuterung:
In meinem Programm werde ich verschiedene Kunden verwalten und je nach Kunde ein spezielles Programm starten. Angefangen habe ich mit der Erstellung der Kunden. Allerdings erhalte ich den oben genannten Fehler in der Main Funktion.
Ich lasse den Benutzer eine Zahl stellvertretend für den Aufruf einer Funktion eingeben. Diese Zahl wird per switch überprüft und startet das entsprechende Programm.
In meinem Fall: CreateCustomes. Hier gibt es ebenfalls einen Scanner und es scheint so, als ob die While Schleife auf den neuen Scanner reagiert sobald nextInt() aufgerufen wird.....
Ich hab mal allen unnötigen Code entfernt:
Java:
//Main
package programme;
import java.util.Scanner;
import klassen.Customer;
/*
* Folgende Optionen soll der Benutzer der CMD haben
* 3. Erstellen von Customer
*/
public class Main {
public static void main(String[] args){
int command = 0;
Scanner keyboard;
keyboard = new Scanner(System.in);
//Solange command != 8 Programm laufen lassen!
while(command != 9){
System.out.println("Was möchten Sie tun?");
System.out.println("1: Laden von Tracks und Customer, 2: Erstellen von Tracks, 3: Erstellen von Customern,");
System.out.println("");
System.out.println("Bitte wählen Sie zwischen 1 und 9: "); //Natürlich habe ich die anderen Zahlen entfernt
command = keyboard.nextInt();
switch(command){
case 3:
System.out.println("CreateCustomer");
CreateCustomer.CreateCustomers();
break;
default:
if(command == 0 || command > 9){
System.out.println("Sie haben keinen gültigen Wert eingetragen!");
}
break;
}
}
//Vor dem Beenden des Programms den Scanner schließen
keyboard.close();
System.out.println("Auf Wiedersehen!");
}
}
Java:
//CreateCustomer
package programme;
import klassen.Customer;
import java.util.Scanner;
public class CreateCustomer {
public static void CreateCustomers(){
//Initialisieren des Scanners und der Customer Attribute
Scanner newKeyboard = new Scanner(System.in);
String name;
String ip;
int port;
String track;
//Einlesen der Attribute
System.out.println("Bitte geben Sie einen Namen ein: ");
name = newKeyboard.nextLine();
System.out.println("Bitte geben Sie eine IP ein: ");
ip = newKeyboard.nextLine();
System.out.println("Bitte geben Sie einen Port ein: ");
port = newKeyboard.nextInt();
//Nach Eingabe des Ports erscheint der Fehler!
System.out.println("Bitte geben Sie einen Track ein ");
track = newKeyboard.nextLine();
//Erstellen des neuen Customers
Customer.customers.add(new Customer(name, ip, port, track));
//Ausgabe des Customers und Funktionsende
System.out.println("Kunde " + Customer.customers.get(Customer.getArrayCount()).getName() + "wurde erstellt!");
System.out.println("Kundendetails:");
System.out.println("ID: " + Customer.customers.get(Customer.getArrayCount()).getIdent());
System.out.println("Name: " + Customer.customers.get(Customer.getArrayCount()).getName());
System.out.println("IP: " + Customer.customers.get(Customer.getArrayCount()).getIP());
System.out.println("Port: " + Customer.customers.get(Customer.getArrayCount()).getPort());
System.out.println("Track: " + Customer.customers.get(Customer.getArrayCount()).getTrack());
System.out.println("");
newKeyboard.close();
}
}
Mit wird auch als Ursprung des Fehlers Zeile 34 der Main angeben.... aber hier ist nur:
command = keyboard.nextInt();
Was noch lange noch nicht ablaufen sollte, da der Switch Case 3 ja eine Funktion aufruft und erst dann zum Break gehen sollte, wenn der Case abgearbeitet wurde....
Bitte nicht auf die Fehlenden catch Anweisungen achten. Lerne erst noch Java und bin noch nicht soweit
Vielen Dank schonmal.
Grüße,
Sorainthy