char im switch

Sunny81

Aktives Mitglied
Hi Leute,

gibt es eine Funktion mit der ich eine Character eingabe im Switch ohne Fehlermeldung bewältigen kann.
Sprich:

case 1: blablabla
break;

case 2: blablabla
break;

case 3: blablabla
break;

Und wenn man jetzt ein a beispielsweiße eingibt.

Danke
 
??
Java:
	char key = 'a';
	switch (key) {
	case 'a':
	    System.out.println("A");
	    break;
	case 'b':
	    System.out.println("B");
	    break; //usw....
	default:
	    break;
	}
 
Oh das wird aber ein langer code.
Gibts keine Möglichkeit dass ich bei allen buchstaben : system.out.print("Flasche Taste");
ausgeben lasse?

Danke
 
Habe eine Abfrage in der man case 1 - 4 wählen kann und einen default.
Aber wenn man einen Buchstaben eingibt kommt die Fehlermeldung.
Würde bei dem Fall gerne system.out.print("Falsche Taste");
ausgeben.

Danke
 
Also ich versteh ehrlich gesagt immer noch nicht was dein Problem ist? 😀
Zeig doch mal ein Stückchen Code...und von was für eine Fehlermeldung redest du eig. die ganze Zeit? 😀
(also ich verstehe es jetzt so, dass man eine Zahl 1-4 eingeben kann und du willst, wenn der User was anderes eingibt, das System.out.println ausgeben wird? Dann schreib das doch einfach unter default ?! )
 
[JAVA=42]
public class pc
{

private String prozessor;
private int ram;
private int festplatte;
static int counter=0;
String Kuerzel;
int pcnummer;
String [] Objekt = {"PC", "Laptop"};

String [] cpuname = {"Intel", "Amd"};
int [] cpupreis = {300, 200};

int [] ramgroesse = {4, 8, 16};
int [] rampreis = {100,200,300};

int [] festplattengroesse = {160,250,500};
int [] festplattenpreis = {100,200,300};
public void setProzessor(String prozessor)
{
this.prozessor = prozessor;
}

public String getProzessor()
{
return prozessor;
}

public void setRam(int ram)
{
this.ram=ram;
}

public int getRam()
{
return ram;
}

public void setFestplatte(int festplatte) {
this.festplatte = festplatte;
}

public int getFestplatte() {
return festplatte;
}




public pc(String pprozessor, int pram, int pfestplatte)
{
prozessor=pprozessor;
ram=pram;
festplatte=pfestplatte;
counter++;
pcnummer = (100 + counter);

}




public String generiereKuerzel()
{
Kuerzel = prozessor.substring(0,2);
return Kuerzel.toUpperCase();
}



public void print(int i)
{
IO.writeln("Ihr " + Objekt + " wurde erfolgreich zusammengestellt!"+
"\nDie RechnungsID lautet: " + generiereKuerzel() + " " + pcnummer + "!" +
"\nProzessor: " + prozessor +
"\nRam: " + ram +
"\nFestplatte " + festplatte +
"\nAnzahl: " + counter +
"\nPreis: " + calc());
}



public int calc()
{
int preis=0;

for(int i=0; i<cpuname.length; i++)
{

if(cpuname.equalsIgnoreCase(prozessor))
{
preis = preis + cpupreis;
}

}
for(int i=0; i<ramgroesse.length; i++)
{

if(ramgroesse == ram)
{
preis = preis + rampreis;

}
}

for(int i=0; i<festplattengroesse.length; i++)
{

if(festplattengroesse == festplatte)
{
preis = preis + festplattenpreis;

}
}


return preis;
}



} // class close[/code]
 
[JAVA=42]public class client
{

public static String prozessor=null;
public static int ram=0;
public static int festplatte=0;

public static void main (String args[])
{
while(true)
{
int select = IO.promptAndReadInt("Bitte wählen Sie aus den Menupunkten aus:\n\n"+
"1 um einen PC zu erstellen!\n"+
"2 um einen LapTop zu erstellen!\n" +
"3 um das Menu zu verlassen!\n");

switch(select)
{
case 1: auswahl();
pc p1 = new pc(prozessor, ram, festplatte);
p1.print(0);
break;

case 2:auswahl();
pc p2 = new pc(prozessor, ram, festplatte);
p2.print(1);
break;

case 3: IO.writeln("Vielen Dank für Ihren besuch - Auf Wiedersehen!\n\n");


break;

default: IO.writeln("Falsche Taste - Bitte erneut wählen!\n");


} // while close
} // switch close
} // main close

public static void auswahl()
{
while(prozessor==null)
{
prozessor = IO.promptAndReadString("Bitte geben Sie den gewünschten Prozessor ein!");

if(!"Intel".equalsIgnoreCase(prozessor) && !"Amd".equalsIgnoreCase(prozessor))
{
IO.writeln("Ungültig - Bitte erneut wählen!\n");
prozessor=null;
}
else
{
IO.writeln("Erfolgreich hinzugefügt!\n");
}
}
while(ram==0)
{
ram = IO.promptAndReadInt("Bitte geben Sie den gewünschten Ramspeicher ein!");
if(ram<4 || ram>16)
{
IO.writeln("Ungültig - Bitte erneut wählen!\n");
ram=0;

}
else
{
IO.writeln("Erfolgreich hinzugefügt!\n");
}
}

while(festplatte==0)
{
festplatte = IO.promptAndReadInt("Bitte geben Sie den gewünschten Festplattenspeicher ein!");
if(festplatte<160 || festplatte>500)
{
IO.writeln("Ungültig - Bitte erneut wählen!\n");
festplatte=0;

}
else
{
IO.writeln("Erfolgreich hinzugefügt!\n");
}
}
}

} // class close


[/code]
 
Und was hat das jetzt mit dem Switch zu tun? Das liegt doch wohl eher an deiner IO-Klasse ?
Java:
int select = IO.promptAndReadInt("Bitte wählen Sie aus den Menupunkten aus:\n\n"+
                                            "1 um einen PC zu erstellen!\n"+
                                            "2 um einen LapTop zu erstellen!\n" +
                                            "3 um das Menu zu verlassen!\n");

Du liest halt ein int und kein Buchstaben(char) und höchstwahrscheinlich fliegt dann eine Exception.
Mit dem Switch hat das Ganze wenig zu tun, daher auch die ganze Zeit die Verwirrung!
Mach ein try catch Block darum und fange die Exception auf!
 
Gibt es in deiner promptAndReadInt()-Methode irgendwo so etwas:

Code:
try{...} catch(...){...}

Am besten du zeigst mal diese Methode.
 
Java:
	try {
	    int select = IO
		    .promptAndReadInt("Bitte wählen Sie aus den Menupunkten aus:\n\n"
			    + "1 um einen PC zu erstellen!\n"
			    + "2 um einen LapTop zu erstellen!\n"
			    + "3 um das Menu zu verlassen!\n");
	} catch (java.lang.NumberFormatException nfe) {
	    System.out.println("Falsche Eingabe!");
	}
 
Zudem muss man aber auch den Fehler abfangen der entsteht, wenn man die 4 eingibt oder etwa nicht 😉

Denn bei der 4 haut er dir auch nen Fehler, und zwar dass es die Zahl nicht gibt.

Dann schreib dir schnell ne if bedingung.

Java:
if(zahl< 4){

//dein code
}
 else {
System.out.println("Fehler");
}


grüße
 
Spin, das hat er schon berücksichtigt:

Java:
default: IO.writeln("Falsche Taste - Bitte erneut wählen!\n");

Aber bei case 3 sollte nach der Meldung auch ein
Code:
System.exit(0)
rein, sonst kann man das Programm nicht richtig beenden.
 

Neue Themen


Zurück
Oben