Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich verstehe nicht wo mein Fehler liegt. Das Programm soll ein Terminkalender mit 31 Tagen sein. Dabei soll für jede Stunde eines Tages ein Termin eingegeben werden können.
Java:
import java.util.Scanner;
public class Myclass{
public static void main(String[]args){
// Variablendeklaration
Scanner x = new Scanner (System.in);
//int i;
//int j;
int zeit;
int tag;
int auswahl;
String termine [][];
boolean fertig;
//i = 0;
//j = 0;
tag = 0;
zeit = 0;
auswahl = 0;
termine = new String [31] [];
for (int i = 0; i < 31 ; i++) {
termine[i] = new String [24];
for ( int j = 0 ;j < 12 ; j++ ) {
termine [i][j] = "";
}
}
fertig = false;
while (fertig) {
System.out.println("1=neuer Termin"+" "+"2 = Termin festlegen"+" "+"3 = Programm beenden");
auswahl = x.nextInt();
switch (auswahl) {
case 1 : System.out.println("Welcher Tag?");
tag = x.nextInt();
System.out.println("Wie viel Uhr?");
zeit = x.nextInt();
System.out.println("Termin");
termine [tag-1][zeit] = x.nextLine(); break;
case 2 : System.out.println("Welcher Tag?");
tag = x.nextInt();
for (int i = 0 ; i < termine[tag-1].length ; i++) {
if (termine[tag-1][i]!= "") {
System.out.println(i + "Uhr" +" " + termine[tag-1][i]);{ break;
}
}
}
case 3 : fertig = true; break;
default : System.out.println("Eingabefehler"); break;
}
}
} }
Wenn du unmittelbar vor Beginn der Schleife fertig auf false setzt, dann kannst du sie getrost ganz weglassen. Der Rumpf der Schleife wird dann natürlich niemals ausgeführt...
Ich hab wirklich nur das Struktogramm abgetippt. Ich verstehe jetzt leider nicht was ich machen soll. Warum soll ich die Hilfsvariablen deklarieren wenn sie nur in der Schleife gebraucht werden?
Das mit dem equal musst du in der Switch case bedingung machen. Da kontrollierst du zwei Strings in einer If bedingung.
Wie du schon sagst könntest du es auch in den Schleifen deklarieren oder auch nur mit werten arbeiten, wenn man es hinbekommt. Warum man die davor deklarieren muss solltest du den fragen von dem du es hast.
Außerdem deine case 3 wird nicht funktionieren, weil du dein switch davor mit } schließt.
ch hab wirklich nur das Struktogramm abgetippt. Ich verstehe jetzt leider nicht was ich machen soll. Warum soll ich die Hilfsvariablen deklarieren wenn sie nur in der Schleife gebraucht werden?
Aber nur abtippen bringt nichts, wenn man Anweisungen nicht richtig ins Java übernimmt. Strings werden nunmal nicht mit == oder != verglichen, sondern mit equals (wie schon gesagt wurde).
Moin,
jetzt vorausgesetzt, dass der zuvor gepostete Code wirklich der Aktuelle ist ....
Dein "case 2" breakt lange nicht immer und läuft dann sofort in "case 3"
Java:
case 2:
System.out.println("Welcher Tag?");
tag = x.nextInt();
for( int i = 0; i < termine[tag - 1].length; i++ )
{
if( termine[tag - 1][i] != "" )
{
System.out.println( i + "Uhr" + " " + termine[tag - 1][i] );
{
break; // dann (nur DANN) wird 'case 3' NICHT betreten !!!
}
}
}
case 3:
fertig = true;
break;
// .....
Ich würde mal nach der FOR-Schleife auch ein 'break' setzen !!
Moin,
jetzt vorausgesetzt, dass der zuvor gepostete Code wirklich der Aktuelle ist ....
Dein "case 2" breakt lange nicht immer und läuft dann sofort in "case 3"
Java:
case 2:
System.out.println("Welcher Tag?");
tag = x.nextInt();
for( int i = 0; i < termine[tag - 1].length; i++ )
{
if( termine[tag - 1][i] != "" )
{
System.out.println( i + "Uhr" + " " + termine[tag - 1][i] );
{
break; // dann (nur DANN) wird 'case 3' NICHT betreten !!!
}
}
}
case 3:
fertig = true;
break;
// .....
Ich würde mal nach der FOR-Schleife auch ein 'break' setzen !!