Problem beim ausführen des Programms

  • Themenstarter Themenstarter lax
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

lax

Gast
hi Leute ich hab hier ein kleines Problem. Und zwar will ich über die Tastatur ein Buchstaben (t) einlesen. Danach soll das programm die If Bedingung prüfen und dann in den entsprechenden Anweisungsblock gehen. Das macht das Programm auch, doch nachdem ich ein Buchstaben (auch t ) eingebe dann wird das Programm sofort beendet. Das programm überspring einfach HoldScreen.stop() .
Ich hab keine ahnung woran das liegen kann ich hoffe ihr könnt mir helfen.

Mfg lax



Code:
package aufg0225;

import de.eikelberg.iotools.*;

public class LogischeOperatoren
{
   
  
public static void main(String[] args)
  {
// Startmeldung
   ScreenOut.kStartScreenOut(".....");

// Ausgaben: Wahrheitswerte eingeben
   ScreenOut.kPrintln();
   ScreenOut.kPrintln("Geben Sie die Wahrheitswerte [t / f] für a bis g ein :");

// Wahrheitswert für a einlesen
   ScreenOut.kPrintln();
   ScreenOut.kPrint("Wahrheitwert für a eigeben :");

   char wahr = 't';
   char awahr;
   awahr = KeyboardIn.kReadChar();
  
  if (wahr == awahr)
   {
   
   // ........

   }
   else

  // ......



// Programm ENDE
   HoldScreen.stop();
  }
}
 
Und da sind sie wieder, die IOTools ... :lol: . kA verwende das Standard API, ansonsten werden die wenigsten wissen was dein HoldScreen.stop macht.
 
Nachtrag!!

HoldScreen.stop();

// führt zum Anhalten der Ausgabe in einem Konsolbildschirm
 
Das hab ich eigentlich net wirklich gemeint.

Sag bitte mal was du genau machen willst und poste deinen kompletten Code.
 
Problemstellung
Das Programm soll Wahrheitswerte zu den logischen Variablen a bis g einlesen, wobei ich die Werte t (true) und f (false) erwarte. Das ganze soll dann später in ein logischen Ausdruck (!a&b&c&&dê ODER f ODER g) eigesetzt und ausgewertet werden. Meine erste Idee war es die Eingabe mit If zu prüfen, also wenn t eingegebn wurde dann true setzen. Deswegen habe ich eine char Variable "wahr" = 't' gesetzt. In der If Anweisung soll das Programm dann prüfen ob t oder etwas anderes eingegebn wurde. Wenn t==t dann die Variable true setzen wenn nicht dann false.
Das Problem ist aber nicht das er nicht in if geht sondern nach der Auswertung direkt das Programm beendet. Wenn ich aber das Programm über die Konsolbox starte (Eingabeaufforderung) dann klappt es. Keine ahnung warum.

Meine zweite Idee war es das ganze mit hilfe des Fragezeichenoperators(Bedingunsoperator) zu machen doch auch da ist es so.

Code:
boolean w = (wahr==awahr)? true:false;
 
lax hat gesagt.:
Wenn ich aber das Programm über die Konsolbox starte (Eingabeaufforderung) dann klappt es. Keine ahnung warum.

Na dann kommt deine IDE vermutlich net mit den IOTools klar. Wo ist dann das Problem wenns eigentlich geht? Was ham eigentlich immer die Anfänger mit ihren IOTools? Lieber gleich gescheid lernen ...
 
Eine Frage , kann ich bei If zwei char Variablen (Buchstaben) auf gleichheit prüfen? Denn wenn ich von char alles auf int ändere und eine zahl eingebe dann klappt es.

// Nachtrag: start über die Konsolbox
Ich glaube es klappt deswegen in der Konsolbox, weil nach dem
Programmabruch die Konsolbox noch aktiv ist.
Die Konsolbox geht dann direkt auf
z.B D:\daten\aufg0225\..... und erwartet neue Befehle.
 
lax hat gesagt.:
Eine Frage , kann ich bei If zwei char Variablen (Buchstaben) auf gleichheit prüfen?

ja. Bsp.:

Code:
public class test {
	
	public static void main(String[] args) {
		
		char a = 'a';
		char b = 'a';
		if (a == b) {
			System.out.println("jup");
		}
	}
}
 
Geht es auch wenn ich eine der variablen über die Tastatur einlese.

z.B.


Code:
public class test 
{
   public static void main (String[] args)

    {
        char a = 'a';
        char b = KeyboardIn()kReadChar();
        
        if (a==b )
           {
                ScreenOut.kPrintln("....");
           } 
        

    }

}
 
Anonymous hat gesagt.:
Geht es auch wenn ich eine der variablen über die Tastatur einlese...
Bei mir geht es:
Code:
       try {b = (char) System.in.read();} catch (IOException ex) {}
        System.out.println("a=b: "+ (a==b));
 
char b = KeyboardIn()kReadChar();

das kann eh nicht gehn 😉


Gleich mal vorweg, Strings immer mit equals vergleichen net mit == !!!
 
Code:
if (str1.equals(str2)) {
    blup
}

Kleiner Tipp am Rande, hau die IOTools in die Tonne und lerne gleich mit den Standardklassen zu Arbeiten. Dann kann dir hier auch besser geholfen werden
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben