Variablen Variablen in einer Schleife erstellen lassen

smogpaster

Mitglied
Hallo liebe Java-Forum-Menschen!

Ich bin ganz neu dabei im Lernen der Java-Programmierung und habe eine Frage, deren Antwort möglicherweise etwas zu knifflig für mich sein könnte. Aber ich lasse es darauf ankommen.

Mein Problem:

Ich möchte ein Programm fürs Pen and Paper schreiben, das mir die Ini-Reihenfolge der Charaktere anzeigt. Zuerst soll es abfragen, wieviele Charaktere teilnehmen, dann für jeden Spieler den Namen und die dazugehörige Ini. Soweit so gut.

Ich habe bereits folgendes Programm geschrieben:

Code:
package Hello;
import java.util.Scanner;
public class Main_Class {
    
        public static void main(String[] args) {
          
            
            //Abfrage Anzahl Charaktere
        
            System.out.println("Wieviele Spielercharaktere? ");
            Scanner AnzahlCharaktere = new Scanner(System.in);
            int inputAnzahlCharaktere = AnzahlCharaktere.nextInt();
            
            while(inputAnzahlCharaktere > 0){ //Beginn Schleife
            
                //Charakter Name
                System.out.println("Gebe den Namen von Charakter " + inputAnzahlCharaktere +" ein: ");
                Scanner Charakter1 = new Scanner(System.in);
                String inputCharakter1 = Charakter1.nextLine();   
                
                //Charakter Ini
                System.out.println("Gebe die Ini von Charakter "+ inputAnzahlCharaktere + " ein: ");
                Scanner IniCharakter1 = new Scanner(System.in);
                String inputIniCharakter1 = IniCharakter1.nextLine();
                
            inputAnzahlCharaktere--;
            
            
            
            
            }
            
            System.out.println(inputAnzahlCharaktere);
            System.out.println("Ende");
            
            
            
            
            
            //Abfrage Rundenstart - noch zu tun
            
            //Abfrage höchste Ini - noch zu tun
            
            //Display höchste Ini mit Namen - noch zu tun
            
            //Display andere Inis mit Namen - noch zu tun
            
            //Abfrage nächste Runde? - noch zu tun
            
    
            
            
        }
}

Das funktioniert soweit auch. Mein Problem besteht jetzt nur darin, mehr Variablen als nur die für den Charakter 1 zu erstellen. Ich könnte sie natürlich alle im Vorhinein erstellen und im Code implementieren, das fände ich aber sehr unschön, da dann ja viele ungenutzte Zeilen im Code umherflirren würden.

Mein Wunsch wäre folgendes:

Solange die while-Schleife läuft, sollen stets zwei neue Variablen erstellt werden, die die neuen Charakter-Daten aufnehmen können.

Ist das irgendwie möglich?

Ich freue mich sehr über Hilfe :)

Liebe Grüße

smog
 
X

Xyz1

Gast
Meinst Du so?
Java:
		int n = 5;
		Scanner scan = new Scanner(System.in);
		for (int i = 0; i < n; i++) {
			System.out.println((i + 1) + " a und b:");
			String[] a = scan.nextLine().split(" ");
			int i1 = Integer.parseInt(a[0]);
			int i2 = Integer.parseInt(a[1]);
			System.out.println(i1);
			System.out.println(i2);
		}

Tupel können in Java nicht anders eingegeben werden.
 
K

kneitzel

Gast
Wonach Du suchst dürften Arrays sein. Evtl. willst Du die einmal nachlesen?

Also grob sieht es so aus:
int inputAnzahlCharaktere = AnzahlCharaktere.nextInt();
Hier hast Du jetzt die Anzahl an Charaktere, die eingeben werden sollen. Also definierst du dir nun entsprechende Arrays:
Code:
String[] inputCharakters = new String[inputAnzahlCharaktere];
String[] inputIniCharakters = new String[inputAnzahlCharaktere];

Und das kannst Du nun in einer for Schleife füllen:
Java:
for (int i=0; i<inputAnzahlCharaktere; i++) {
    inputCharakters[i] = IN.nextLine();
    inputIniCharakters[i] = IN.nextLine();
}

Und Du musst nicht ständig eine neue Scanner Instanz erzeigen. Mach direkt in deine Klasse ein:
public static final Scanner IN= new Scanner(System.in);
Dann kannst du in der ganzen Klasse einfach immer auf den Scanner IN zugreifen, wenn du etwas einlesen willst. Und von außerhalb kannst Du dann Main_Class.IN nutzen.

Dann noch ein paar weitere allgemeine Hinweise:
Bei der Namensgebung in erster Linie die Funktion oder den Inhalt beschreiben. Woher etwas kommt ist in der Regel unwichtig. Ich würde also die Variablen eher sowas wie characterName, chatacterIni (was ist ini?), ... nennen.
Und bei den meisten Namen wir ein PascalCase oder camelCase verwendet. Also kein _. Main_Class wird also MainClass bzw, da wir nicht schreiben, dass die Klasse eine Klasse ist: einfach Main. Du bist ja auch "smog" und nicht "smogUser" oder "smogMensch". Und ich bin Konrad und nicht KonradMensch :)

Ich hoffe, ich konnte Dir weiter helfen.

Viele Grüße und frohe Ostern,

Konrad
 

smogpaster

Mitglied
Hallo zusammen!

@Xyz1: Ich befürchte, deine Lösung hilft mir leider nicht wirklich weiter. Ich bin mir auch nicht wirklich sicher, was genau dein Code macht :/

@JustNobody: Danke! Das war genau, was ich gesucht habe. Obwohl ich mich mit den Arrays noch etwas mehr auseinandersetzen muss, die habe ich noch nicht voll durchstiegen!
Ich habe auch die anderen Vorschläge gerne angenommen. Gerade das mit dem Scanner in der Klasse macht es doch einfacher :) Allerdings habe ich jetzt zwei Scanner in der Klasse erstellt, da er mir einen Fehler ausgegeben hat, wenn ich mit dem einen sowohl int als auch String einlesen wollte. Jetzt habe ich einen für int und einen für String.
Ini steht für Initiative und zeigt im Rollenspiel an, in welcher Reihenfolge die Charaktere in einem Kampf handeln können. Der mit der höchsten Ini startet zuerst, dann der mit der zweithöchsten und so weiter. Jeder Charakter hat für gewöhnlich einen Ini-Basiswert, auf den dann noch ein Würfelwurf hinzukommt.

Ich bin nun schon ziemlich weitergekommen, habe aber noch eine weitere Frage, die vielleicht (hoffentlich?) etwas einfacher zu beantworten sein wird. Und zwar möchte ich den User auffordern, jeweils den Namen und die Ini der Charaktere einzugeben. Da die Arrays aber bei 0 starten, kann ich, wenn ich i als Nummerierung der Charaktere benutze, bisher nur ausgeben: "Bitte gebe den Namen von Charakter 0 ein", bevor die Zählung weitergeht. Ich hätte aber gerne, dass der erste Charakter auch mit 1. benannt werden kann.
Gibt es eine Möglichkeit, meine Variable i nur in der Ausgabe immer um 1 zu erhöhen? Ich habe es mit "+1" versucht, aber daraus wurde dann 01, 11, 21 usw.

Mein Code sieht momentan jetzt so aus:

Code:
package IniAnzeige;
import java.util.Scanner;
public class Main {
public static final Scanner IN= new Scanner(System.in);
public static final Scanner IN2= new Scanner(System.in);

        public static void main(String[] args) {
          
            
            //Abfrage Anzahl Charaktere
        
            System.out.println("Wieviele Spielercharaktere? ");
            
        
            int inputAnzahlCharaktere = IN2.nextInt();
            
            
            String[] inputNameCharakter = new String[inputAnzahlCharaktere];
            int[] inputIniCharakter = new int[inputAnzahlCharaktere];
            
            for (int i=0; i<inputAnzahlCharaktere; i++) {
                System.out.println("Bitte gebe den Namen des " + i + ". Charakters ein: ");
                inputNameCharakter[i] = IN.nextLine();
                System.out.println("Bitte gebe die Ini des " + i + ". Charakters ein: ");
                inputIniCharakter[i] = IN2.nextInt();
            }
            
            for (int i=0; i<inputAnzahlCharaktere; i++) {
                System.out.println(inputNameCharakter[i]);
                System.out.println("Ini " + inputIniCharakter[i]);
            }
                
            
            
            
            //Abfrage Rundenstart - noch zu tun
            
            //Abfrage höchste Ini - noch zu tun
            
            //Display höchste Ini mit Namen - noch zu tun
            
            //Display andere Inis mit Namen - noch zu tun
            
            //Abfrage nächste Runde? - noch zu tun
        }
}


Danke vielmals für eure Hilfe, das ist Gold wert! Auch an dich, @M.L., ich schaue mir das bestimmt später mal an, wenn ich weiter fortgeschritten bin!
 
K

kneitzel

Gast
Also das mit den zwei Scannern ist nicht unbedingt eine gute Idee. Ein Scanner sollte ausreichen. Du musst nur verstehen, wie der Scanner funktioniert.

Eine Problematik, die auftreten kann, ist, dass er einen Zeilenumbruch im Puffer hat und es dann daran hängt. In solchen Fällen kann man dann einfach mittels nextLine den noch im Puffer befindlichen Zeilenumbruch entfernen.

Wenn Du willst kannst du gerne einmal zeigen, wann an welcher Stelle das Problem mit einem scanner aufgetreten ist und dann würde ich den Fall im Detail noch erläutern.
 

smogpaster

Mitglied
Hi, hm, ok.

Folgender Fehler passiert, wenn ich den Code kompiliere:

Code:
Wieviele Spielercharaktere?
5
Bitte gebe den Namen des 0. Charakters ein:
Bitte gebe die Ini des 0. Charakters ein:
PEter
Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
    at HelloPro/IniAnzeige.Main.main(Main.java:24)

Er gibt also die beiden System.outs. auf einmal aus, ohne zwischendurch eine Eingabe zu erwarten und am Ende kommt es dann noch zum zu sehenden Fehler.

Hast du ne Idee?

Und kannst du mir mit dem anderen Problem (Dass die Zählung bei 1 beginnt) vielleicht auch weiterhelfen? :)
 
K

kneitzel

Gast
Das Array startet mit index 0. Wenn Du da die Ausgabe ab 1 haben willst, dann kannst Du bei der Ausgabe auf den Wert ja 1 addieren.

Und hier schlägt das Problem mit dem Zeilenumbruch auf:
Der Scanner bekommen von der Eingabe eine Serie von Zeichen. Für die Eingabe ist aber immer die Enter-Taste das, was die weitere Abarbeitung triggert (das '\n' Zeichen).

Also bei der Abfrage nach der Anzahl der Spielcharaktere gibst du ein '5' und '\n' (Also die Enter-Taste).
nextInt liest aber nur die '5' - daher ist das '\n' noch da.

Dann kommt die Eingabe des Namens. Das nextLine findet nun aber noch dieses '\n' aus der vorherigen Eingabe. Daher ist er sofort zufrieden und der Name ist der leere String ("").
Nun kommt die Abfrage nach der Ini, was eine Zahl sein soll. Du gibst aber "PEter" ein. Das ist keine Zahl und nextInt meckert.

Was also nach dem ersten nextInt kommen muss ist ein weiterer Aufruf von nextLine. Dadurch löscht Du alles, was noch nach der Zahl kommt:
Java:
System.out.println("Wieviele Spielercharaktere? ");
int inputAnzahlCharaktere = IN2.nextInt();
IN2.nextLine(); // Bis einschließlich den Zeilenumbruch raus lesen.

Das Gleiche musst Du auch machen bei der anderen nextInt() Abfrage.
 

smogpaster

Mitglied
Hallo und als erstes: Frohe Osterfeiertage! Ich hoffe, ihr habt trotz der Umstände eine schöne Zeit.

Vielen Dank für deine ausführlichen Ratschläge @JustNobody! Die Sache mit nur einem Scanner funktioniert jetzt und ich habe das Problem auch verstanden!

Noch nicht weitergekommen bin ich aber mit dem Addieren des Wertes des Indexes. Offenbar habe ich hier einen blöden Denkfehler?
Wenn ich auf i eins addiere, dann ändere ich damit ja die gesamte Bedingung der Schleife. Das führt bei mir nicht nur zu falschen Werten, sondern auch noch zu einem Absturz des Programms.

Der Code:

Code:
 //for-Schleife zur Abfrage der Namen und Inis
            for (int i=0; i<inputAnzahlCharaktere; i++) {
                System.out.println("Bitte gebe den Namen des " + ++i + ". Charakters ein: ");
                inputNameCharakter[i] = IN.nextLine();
                System.out.println("Bitte gebe die Ini des " + i + ". Charakters ein: ");
                inputIniCharakter[i] = IN.nextInt();
                IN.nextLine();
            }

Der Fehler:

Code:
Wieviele Spielercharaktere?
3
Bitte gebe den Namen des 1. Charakters ein:
Mark
Bitte gebe die Ini des 1. Charakters ein:
4
Bitte gebe den Namen des 3. Charakters ein:
tom
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    at HelloPro/IniAnzeige.Main.main(Main.java:22)

Was mache ich falsch?

Danke noch einmal im Voraus für die Beantwortung dieser (vorerst) letzten Frage!
 

M.L.

Top Contributor
ArrayIndexOutOfBounds..... und Zeile 22 deutet auf diese Codezeilen hin:
Java:
int inputAnzahlCharaktere = IN2.nextInt();
            String[] inputNameCharakter = new String[inputAnzahlCharaktere];
            int[] inputIniCharakter = new int[inputAnzahlCharaktere];
Hier wird ein Array mit fixer Länge angelegt (z.B. 3, macht dann die Indexe 0,1,2) und später der Index überschritten. Für später (Stichwort: dynamisches Array) gibt es "Vector", "ArrayList", "CopyOnWriteArrayList "
 
K

kneitzel

Gast
Du willst doch nicht i erhöhen sondern lediglich i+1 ausgeben, also sowas machen:
System.out.println("Bitte gebe den Namen des " + (i+1) + ". Charakters ein: ");
bzw. dann 2 Zeilen später:
System.out.println("Bitte gebe die Ini des " + (i+1) + ". Charakters ein: ");

Es wird also i nicht verändert sondern lediglich vor der Ausgabe i+1 gerechnet um das Ergebnis dann auszugeben.
 

smogpaster

Mitglied
Ah, super, die Klammern haben mir gefehlt! Vielen Dank! Damit wäre nun alles geklärt und ich kann mich an meine restlichen Baustellen machen. Das war eine super Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Variablen einer Schleife zwischenspeichern Java Basics - Anfänger-Themen 2
A Variablen aus einer Schleife gezielt auslesen Java Basics - Anfänger-Themen 11
X Variablen Variablen erzeugen in einer Schleife? Java Basics - Anfänger-Themen 6
M Effizienter Variablen außerhalb einer Schleife zu deklarieren? Java Basics - Anfänger-Themen 1
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
P Klassen Variablen von einer Klasse zur anderen Java Basics - Anfänger-Themen 5
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
J Zeilen aus einer .txt-Datei auslesen und Variablen zuweisen Java Basics - Anfänger-Themen 11
M Sortieren von einer Liste - zwei zugehoerige Variablen Java Basics - Anfänger-Themen 5
J Variablen überschreiben innerhalb einer Klasse Java Basics - Anfänger-Themen 7
J Wie behalten Variablen den Wert, den sie in einer anderen Methode erhalten haben? Java Basics - Anfänger-Themen 14
L Aus einer String Variablen ein Objekt erstellen Java Basics - Anfänger-Themen 14
K Einer Variablen Werte von anderen Variablen zuweisen Java Basics - Anfänger-Themen 5
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
C Datentyp von einer Variablen ermitteln. Java Basics - Anfänger-Themen 12
G Zugriff auf private Variablen einer inneren Klasse Java Basics - Anfänger-Themen 5
N variablen vom typ einer abstrakten Klasse Java Basics - Anfänger-Themen 5
J Von einer Klasse auf Variablen der anderen Klasse zugreifen Java Basics - Anfänger-Themen 8
K Übergabe einer im EventListener definierte variablen Java Basics - Anfänger-Themen 2
A Ausgabe einer variablen im textfeld Java Basics - Anfänger-Themen 3
M Variablen einer Klasse zu durchlaufen möglich? Java Basics - Anfänger-Themen 5
P Variablen in einer anderen Klasse ueberschreiben Java Basics - Anfänger-Themen 2
C Deklaration einer Variablen in einem rekursivem Aufruf Java Basics - Anfänger-Themen 5
M den Pfad einer txt-Datei in einer variablen speichern Java Basics - Anfänger-Themen 6
C Objekt soll sich selber einer Variablen zuweisen. Java Basics - Anfänger-Themen 6
E Mathematisch parsen, aber mit einer Variablen X ! Java Basics - Anfänger-Themen 6
H Unterschied statischer/dynamische Typ einer Variablen Java Basics - Anfänger-Themen 2
G Definition einer logischen Variablen Java Basics - Anfänger-Themen 4
Z Prüfung auf existenz einer Variablen Java Basics - Anfänger-Themen 4
C auf Variablen von Methoden einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 7
C Aus einer *.csv Datei bestimmte Werte Variablen zuweisen Java Basics - Anfänger-Themen 19
bernd Werte einer Variablen auslesen! Java Basics - Anfänger-Themen 4
M Eibettung einer Variablen in eine Berechnung Java Basics - Anfänger-Themen 5
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
C Variablen in Schleifen außerhalb verwenden Java Basics - Anfänger-Themen 2
S Variablen Flexible Variablen Namen Java Basics - Anfänger-Themen 3
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
RowdyN Variablen Variablen beliebig benennen? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben