Zum Inhalt springen

If/Else problem


Artox

Empfohlene Beiträge

So ganz bin ich da jetzt nicht mitgekommen

also

stand der dinge ist





import java.io.*;


 public class Main

 {


   public static void main(String[] args)

   throws IOException

   {

     String User;

     String JaNein;

     //String Kind;

     BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


     System.out.println("Hallo bitte gebe deinen Spieler Namen ein: ");

     User = in.readLine();

     System.out.println("Hallo "+User+" das ist ein Rollen Spiel \n Du stehst am Waldrand vor dir \n siehst du ein Dorf \n Willst du ins Dorf gehen Ja/Nein");

     JaNein = in.readLine();

         if(JaNein.equals("Ja"))

        	 starteSpiel();

         else

        	 System.err.println("Du wolltest nicht in das Dorf gehen \n die Sonne ging unter und die wilden Tiere \n taten den rest \n GAME OVER");

   }


   private static void starteSpiel()

   throws IOException

   {

	   String jaNein;

	   BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

	   System.out.println("Du begibst dich in die Stadt auf dem Weg \n dahin triffst du einen alten Mann \n dieser möchte dir einen alten stock geben \n nehmen/weitergehen");

	   jaNein = in.readLine();

	     if(jaNein.equals("nehmen"))

	    	 mitStock();

	     else

	    	 ohneStock();


   }

       private static void mitStock()

       {

    	   //hier müsste jetzt der senf mit dem BufferedReader stehen usw......   

       }

       private static void ohneStock()

       {}








   }


 
das habe ich die zweite datei eingefügt "eingabe.java"


import java.io.*;


/**  Die Klasse enthält Eingabemethoden für die

 * Eingabe eines Strings mit und ohne Eingabeaufforderung

 *Eingabe eines Zeichens mit und ohne Eingabeaufforderung

 *Eingabe einer Zahl (integer) mit und ohne Eingabeaufforderung

 **/

public class eingabe {


    /**  Eingabe eines String ohne Eingabeaufforderung *******

     * die Methode liefert einen String zurück, der über Tastatur eingeben wurde **/


    public String eingString() {

        String sin = " ";

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        try {

            sin=in.readLine();

        }

        catch(IOException e) {

            System.out.println(e.toString());

        }

        return sin;

    }


    /**  Eingabe eines String mit Eingabeaufforderung *******

     * die Methode liefert einen String zurück, der über Tastatur eingeben wurde **/


    public String eingString(String s) {

        String sin = " ";

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        try {

            System.out.print(s);

            sin=in.readLine();

        }

        catch(IOException e) {

            System.out.println(e.toString());

        }

        return sin;

    }


    /**  Eingabe eines Zeichens ohne Eingabeaufforderung *******

     * die Methode liefert ein zeichen zurück, das über Tastatur eingeben wurde **/


    public char eingChar() {

        char cin = ' ';

        DataInputStream in = new DataInputStream(System.in);

        try {

            cin=in.readChar();

            System.out.print("..." + cin);

        }

        catch(IOException e) {

            System.out.println(e.toString());

        }

        return cin;

    }


    /**  Eingabe eines Zeichens mit Eingabeaufforderung *******

     * die Methode liefert ein zeichen zurück, das über Tastatur eingeben wurde **/


    public char eingChar(String s) {

        char cin = ' ';

        DataInputStream in = new DataInputStream(System.in);

        try {

            System.out.print(s);

            cin=in.readChar();

        }

        catch(IOException e) {

            System.out.println(e.toString());

        }

        return cin;

    }


    /**  Eingabe eines Integer ohne Eingabeaufforderung *******

     * die Methode leist einen String ein und wandelt ihn in int **/


    public int eingInt() {

        Integer i = new Integer(eingString());

        return i.intValue();

    }


    /**  Eingabe eines Integer mit Eingabeaufforderung *******

     * die Methode leist einen String ein und wandelt ihn in int **/

    public int eingInt(String s) {

        Integer i = new Integer(eingString(s));

        return i.intValue();

    }

}

aber so recht geht das nicht und schaut auch komisch aus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

das hört sich jetzt vielleicht fies an, ist aber leider so: Dein eingeschlagener Weg funktioniert nicht. Es ist nicht möglich, Java erst mal zu lernen und dann die objektorientierte Programmierung verstehen zu wollen. Du wirst sonst bei jedem syntaktischen Merkmal hier auf der Matte stehen und eine Detailfrage stellen, die - hast Du den Gesamtzusammenhang erst mal umrissen - nicht auftreten würde.

Du kannst ja auch nicht KFZ-Mechaniker werden, indem Du irgendein Teil aus Deinem Auto rausreißt und Dir ein Ventil erklären lässt, beim nächsten Ventil aus einem anderen Bauteil aber schon wieder das selbe Problem hast. Du lernst erst mal die Grundlagen und dann die Details.

Deshalb: beschäftige Dich doch mit der OOP und dann mit einem Java-Buch. Ich empfinde z.B. www.javabuch.de - Das Handbuch der Java-Programmierung als besser als die Insel.

Schöne Grüße,

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

So könnte es gehen bzw. wäre realisierbar auf dem einfachen Weg:

Die Main-Klasse:



public class Main {


	private static Eingabe eing;


	private static String user;


	private static String jaNein;


	private static String meinStock;


	/**

	 * @param args

	 */

	public static void main(String[] args) {

		eing = new Eingabe();

		System.out.println("Hallo bitte gebe deinen Spieler Namen ein: ");

		user = eing.eingString();

		System.out.println("Hallo " + user + " das ist ein Rollen Spiel \n Du stehst am Waldrand vor dir \n siehst du ein Dorf \n Willst du ins Dorf gehen Ja/Nein");

		jaNein = eing.eingString();

		if (jaNein.equalsIgnoreCase("Ja"))

			starteSpiel();

		else

			System.err.println("Du wolltest nicht in das Dorf gehen \n die Sonne ging unter und die wilden Tiere \n taten den Rest \n GAME OVER");

	}


	private static void starteSpiel() {

		System.out.println("Du begibst dich in die Stadt auf dem Weg \n dahin triffst du einen alten Mann \n dieser möchte dir einen alten stock geben \n nehmen/weitergehen");

		jaNein = eing.eingString();

		if (jaNein.equalsIgnoreCase("nehmen"))

			mitStock();

		else

			ohneStock();

	}


	private static void mitStock() {

		meinStock = eing.eingString();

		System.out.println(meinStock);

		// TODO Auto-generated method stub

		// usw. ...

	}


	private static void ohneStock() {

		// TODO Auto-generated method stub		

	}

}

Die Eingabe-Klasse:

import java.io.BufferedReader;

import java.io.DataInputStream;

import java.io.IOException;

import java.io.InputStreamReader;


/**

 * Die Klasse enthält Eingabemethoden für die Eingabe eines Strings mit und ohne

 * Eingabeaufforderung Eingabe eines Zeichens mit und ohne Eingabeaufforderung

 * Eingabe einer Zahl (integer) mit und ohne Eingabeaufforderung

 *  

 */

public class Eingabe {


	/***************************************************************************

	 * Eingabe eines String ohne Eingabeaufforderung die Methode liefert einen

	 * String zurück, der über Tastatur eingeben wurde

	 **************************************************************************/


	public String eingString() {

		String sin = " ";

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		try {

			sin = in.readLine();

		} catch (IOException e) {

			System.out.println(e.toString());

		}

		return sin;

	}


	/***************************************************************************

	 * Eingabe eines String mit Eingabeaufforderung die Methode liefert einen

	 * String zurück, der über Tastatur eingeben wurde

	 **************************************************************************/


	public String eingString(String s) {

		String sin = " ";

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		try {

			System.out.print(s);

			sin = in.readLine();

		} catch (IOException e) {

			System.out.println(e.toString());

		}

		return sin;

	}


	/***************************************************************************

	 * Eingabe eines Zeichens ohne Eingabeaufforderung die Methode liefert ein

	 * zeichen zurück, das über Tastatur eingeben wurde

	 **************************************************************************/


	public char eingChar() {

		char cin = ' ';

		DataInputStream in = new DataInputStream(System.in);

		try {

			cin = in.readChar();

			System.out.print("..." + cin);

		} catch (IOException e) {

			System.out.println(e.toString());

		}

		return cin;

	}


	/***************************************************************************

	 * Eingabe eines Zeichens mit Eingabeaufforderung die Methode liefert ein

	 * zeichen zurück, das über Tastatur eingeben wurde

	 **************************************************************************/


	public char eingChar(String s) {

		char cin = ' ';

		DataInputStream in = new DataInputStream(System.in);

		try {

			System.out.print(s);

			cin = in.readChar();

		} catch (IOException e) {

			System.out.println(e.toString());

		}

		return cin;

	}


	/***************************************************************************

	 * Eingabe eines Integer ohne Eingabeaufforderung die Methode leist einen

	 * String ein und wandelt ihn in int

	 **************************************************************************/


	public int eingInt() {

		Integer i = new Integer(eingString());

		return i.intValue();

	}


	/***************************************************************************

	 * Eingabe eines Integer mit Eingabeaufforderung die Methode leist einen

	 * String ein und wandelt ihn in int

	 **************************************************************************/

	public int eingInt(String s) {

		Integer i = new Integer(eingString(s));

		return i.intValue();

	}

}

Das Ganze könnte man weiter verfeinern, indem man die ganzen Funktionen noch in Klassen auslagert, aber dazu sollte man sich belesen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

das hört sich jetzt vielleicht fies an, ist aber leider so: Dein eingeschlagener Weg funktioniert nicht. Es ist nicht möglich, Java erst mal zu lernen und dann die objektorientierte Programmierung verstehen zu wollen. Du wirst sonst bei jedem syntaktischen Merkmal hier auf der Matte stehen und eine Detailfrage stellen, die - hast Du den Gesamtzusammenhang erst mal umrissen - nicht auftreten würde.

Du kannst ja auch nicht KFZ-Mechaniker werden, indem Du irgendein Teil aus Deinem Auto rausreißt und Dir ein Ventil erklären lässt, beim nächsten Ventil aus einem anderen Bauteil aber schon wieder das selbe Problem hast. Du lernst erst mal die Grundlagen und dann die Details.

Deshalb: beschäftige Dich doch mit der OOP und dann mit einem Java-Buch. Ich empfinde z.B. www.javabuch.de - Das Handbuch der Java-Programmierung als besser als die Insel.

Schöne Grüße,

Peter

Sicherlich muss ich dir Grundsätzlich recht geben.

Aber nur von Buch lesen kann man net lernen

nur weil jemand 3 Bücher gelesen hat vom Zylinderkopf tauschen,

deshab wird er trozdem Fragen wenn er vor dem Auto steht.

Aber ich werde mir jetzt erstmal die OOP genauer ansehen.

Tue mich nur leichter wenn ich in der Praxis vor einem Prob stehe,

versuche es dann zu lösen und wenn das nicht geht

schreie ich ganz laut hier ^^.

@Diesy

werde das mal ausprobieren danke dir

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen,

da habe ich mich vielleicht unklar ausgedrückt. Es ist natürlich nicht sinnvoll, alleine Bücher zu lesen. Man muss den Inhalt schon gleich verarbeiten. Die meisten Bücher zu Java haben eine kurze Einführung in die Objektorientierung. Ansonsten gibt es auch kleine OO-Einführungstutorials, die einen in ca. 1-2 Stunden dahin bringen, das man Objekte und OOP prinzipiell versteht. Dann kannst Du ja mit dem ersten Buch weitermachen. Dort solltest Du aber nicht die Grundlagenthemen überspringen sondern durcharbeiten. Dann wirst Du Fragen wie die mit der Exception nicht haben, weil Du das Kapitel über Exceptionhandling gelesen hast.

Viel Erfolg!

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

finde es super, daß du den Ehrgeiz aufbringst eine Programmiersprache zu lernen. Allerdings ist es sicher nicht der beste / einfachste Weg mit Java anzufangen. Dadurch, da du gezwungenermaßen OOP programmieren mußt und somit gar kein wirklich einfacher Einstieg möglich ist.

Ich bin ins Programmieren mit PHP eingestiegen. Das gute an der Sprache ist:

1. du brauchst kein OOP - kannst später aber darauf umsteigen

2. Datentypen, etc. werden nicht so streng gesehen bzw. Datentypen gibt es ja eigentlich nicht

3. Du kannst anhand von HTML direkt mit grafischer Oberfläche arbeiten und damit schon sehr gute Ergebnisse erzielen, die die Motivation wohl auch höher halten als die schwarze DOS-Box

Auf dem Weg habe ich den Einstieg gefunden und mich immer weiter heran getastet an das OOP, ehe ich auf Java, C#, etc. umgestiegen bzw. damit eingestiegen bin.

Vielleicht solltest du es so mal probieren - denn ein Spiel in Java zu programmieren wird dich noch vor ganz andere Probleme stellen.

Gruß,

DiHo

Link zu diesem Kommentar
Auf anderen Seiten teilen

2. Datentypen, etc. werden nicht so streng gesehen bzw. Datentypen gibt es ja eigentlich nicht
Das siehst du als Vorteil? :beagolisc

Natürlich ist es für den Einsteiger einfach(er), wenn er sich nicht um Typing etc. kümmern muss - allerdings mit einem oftmals hohen Preis. Du musst dir an irgendeinem Punkt bewusst sein, dass es jetzt zu "vernünftigem" Typing übergeht und man die eigene Denkweise nochmal überdenken muss. Lazy Typing ist (sehr oft) einfach nur dreckiges Coding. Du gewöhnst dir einen schlechten Stil an, den man später nur sehr sehr schwer wieder los wird. Und sowas gerade am Anfang zu lernen verdirbt dir den Spaß und den Erfolg am Programmieren für eine lange Zeit.

3. Du kannst anhand von HTML direkt mit grafischer Oberfläche arbeiten und damit schon sehr gute Ergebnisse erzielen, die die Motivation wohl auch höher halten als die schwarze DOS-Box
Es geht beim Lernen der grundlegenden Programmiertechniken nicht um bunte Bilder. Im Gegenteil: Es geht um die Konzepte und die Logiken. Die Ausgabe dient eigentlich "nur" dazu zu sehen, ob das, was du im Code fabriziert hast auch die korrekten Ergebnisse liefert. Alles andere (also insbesondere das Konzentrieren auf die Oberfläche und die Darstellung) ist bei sowas hinderlich.

Wer direkt am Anfang bunte Bildchen haben will macht irgendwas falsch.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ganz so Richtig finde ich es auch nicht

deine Idee mag zwar vom ansatz her nicht schlecht sein

aber ich glaube es vereinfacht die sache nicht gerade im gesamten,

da es ja wirklich so ist das man sich schlechte eigenschaften schlechter

abgewöhnt,

und ist es nicht eher so das wenn man etwas schwierigeres wie Java usw.

einigermassen versteht und beherscht das man dann mit sachen wie PHP usw.

besser klar kommt ??

trotzdem mal danke

werde mich weiter mit Java beschäftigen und Ps. mir gehts da nicht um die Grafik ^^

Anbei ne frage weiss jemand warum ich zwar die Zeilen und den Zeilen einer Text datei auslesen und in der Konsole ausgeben kann

sobald ich es aber mit der Config Sys probiere funzt das net ??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke, es ist nicht verkehrt, mehr als eine Sprache zu beherrschen ;)

Allerdings ist meiner Meinung nach Java wieder ein Spezialfall durch die Plattformunabhängigkeit, was man schon bei der Konsoleneingabe sieht. Dazu kommt noch, daß die Klassenbibliothek vor Design Patterns nur so strotzt. Java ist daher wohl eher eine schwierigere Sache um "mal eben" programmieren zu lernen. Aber wenn Du das Programmieren wirklich lernen willst, ist es sicher nicht verkehrt.

Angefangen habe ich mit QBasic, Profan und dann VB. VB finde ich für den Anfang nicht übel.

Zu Deinem Problem: An isch sollte das gehen. Poste doch mal den Code. Es kann allerdings sein, daß Windows den "Fuß drauf hat".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...