Hilfe bei einer Java Aufgabe

11/11/2006 11:12 lugh#1
Denke mal hier kennen sich auch ein paar mit dem programmieren einer Java Aufgabe aus ;)

Komme leider an einer stelle nicht weiter, daher versuch ich es mal hier
Code:
public class hallo 
{
 public static void main(String[] args)
 {
 TextIO.putln("Bitte geben sie einen der folgenden Laendercodes ein: A=Austria, D=Deutschland, F=Frankreich, G=Groábritanien I=Italien oder M=Malle");
       
 char Land = TextIO.getChar();
 
{
if (char Land == A, D, F, G, I, M)
else
System.out.println("Bitte geben Sie eine der geforderten Laendercodes ein");
}
 
 switch(Land)
 
  {
  case'A':
  case'a': 
  System.out.println("Wilkommen");
  break;
  case'D':
  case'd': 
  System.out.println("Willkommen");
  break;
  case'F':
  case'f': 
  System.out.println("Bienvenue");
  break;
  case'G':
  case'g': 
  System.out.println("Welcome");
  break;
  case'I':
  case'i': 
  System.out.println("Benvenuto");
  break;
  case'M':
  case'm': 
  System.out.println("PROST");
  break;
  }
 }
}
das programm ist lauffähig ohne diesen teil

Code:
{
if (char Land == A, D, F, G, I, M)
else
System.out.println("Bitte geben Sie eine der geforderten Laendercodes ein");
}
ich wollte es als erstes mit dem boolean machen, das wenn ein anderer Buchstabe eingegeben wird er eine fehlermeldung ausgibt, habs aber nicht hinbekommen deswegen zu einer if funktion gegriffen

Kann mir jemand helfen? :cry:
11/11/2006 11:58 NoName#2
als erstes würde ich mir erstmal einrückungen angewöhnen, das bereitet kopfschmerzen der versuch ne code zu verstehen der keine hat, noch schlimmer als das hier ist dein geposteter c code.

dann würde ich niemals if (blah) machewas schreiben, sondern imm die geschweiften klammern setzen ala if (blah) {mache was}
ist sauberer und übersichtlicher und wenn da befehle hinzufügen willst, suchste nicht zig stunden wieso das nicht geht ;-)

und zu deinen case grossbuchstabe und kleinbuchstabe, du kannst auch einfach den eingabestring zu ne gross oder kleinbuchstaben konvertieren für die auswertung erspart zeit

und der teil funzt nicht weil wenn du keine geschweiften klammern setzt der nach dem if einen befehl erwartet.
also musst du die setzen.

wobei ich da auch abfragen würde ob land ungleich A, D, F, G, I, M ist

aber die abfrage ist sowieso unnötig ne switch/case anweisung ist eigentlich nichts anderes als ne verkettung von if/elseif/else sieht nur optisch anders aus

also kannst du ans ende einfach setzen:

default:
System.out.println("Bitte geben Sie eine der geforderten Laendercodes ein");
break;
11/11/2006 13:53 lugh#3
ok danke habs jetzt auch mit einer default anweisung gemacht ;)

Nur meckert der jetzt rum das er den befehl getchar in der Text.IO nicht kennt, aber es lief gestern noch einwandfrei ;)

Naja bekomme es schon raus, danke
11/11/2006 14:49 mr.rattlz#4
So klappts übrigens prima:
Ich fand es sinnvoller, wenn das ganze etwas konsistenter aussieht und nur eine Methode zur Textausgabe
verwendet wird als dein Durcheinander ;)
Code:
public class hallo {
 public static void main(String[] args){
 TextIO.putln("Bitte geben sie einen der folgenden Laendercodes ein: A=Austria, D=Deutschland, F=Frankreich, G=Groábritanien I=Italien oder M=Malle");
 char Land = TextIO.getChar();
 Land = Character.toUpperCase(Land);
 switch(Land){
  case'A': TextIO.putln("Wilkommen");
  break;
  case'D': TextIO.putln("Willkommen");
  break;
  case'F': TextIO.putln("Bienvenue");
  break;
  case'G': TextIO.putln("Welcome");
  break;
  case'I': TextIO.putln("Benvenuto");
  break;
  case'M': TextIO.putln("PROST");
  break;
  default:TextIO.putln("Bitte geben Sie eine der geforderten Laendercodes ein");
 }
 }
}
11/11/2006 15:19 lugh#5
danke dir ;)

es läuft


PS kann sein das ich öfters mit solchen fragen komme ^^