Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Fehler korrigieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Fehler korrigieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
JavaAnfänger
unregistriert
Fehler korrigieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo, liebe Leute.
Es geht um folgenden Auftrag



code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
import java . io .*; 
public class Fehlersuche { 
static final int 42 = loesung ;
 public static void main ( String [] args ) throws IOException { 
BufferedReader in = new BufferedReader (new InputStreamReader ( System . in ) ) ; 
System . out . print ("Die halbe 9251; Wahrheit ist: ") ; 
hW = in . readLine () ; 
int antwort ; 
int hW ;
 antwort = 2.0* hW ; 
if( antwort = 42) 
System . out . println (" Korrekt !") ; 
else 
System . out . println (" Falsch ") ; } }


Dabei sollen Fehler korrigiert werden:

Eigentlich sollte das Programm eine Zahl einlesen, diese mit zwei multiplizieren und, falls das Ergebnis gleich 42 ist, „korrekt“ ausgeben, ansonsten „falsch“ ausgeben.



Ich gehe so vor:

1.)aufschreiben wodurch der Fehler hervorgerufen wurde bzw. was die Fehlermeldung aussagt und
2.)wie ich den Fehler korrigiert haben.



Meine Ideen:
Der 1. Fehler ist in der 3. Zeile. Dort soll loesung als fester ganzzahiger Wert mit 42 initialisiert werden, jedoch wird das syntaktisch falsch gemacht. Nach int kommt der Name der Variable. Dann folgt die Wertzuweisung über ein = 42. Richtig wäre es also:

static final int loesung = 42;

Der 2. Fehler ist in 7. Es wird eine Variable verwendet, die nicht mal definiert ist. D.h das int hW muss über der 7. Zeile stehen. Die Variable hW muss zuerst initialisiert werden, bevor sie verwendet werden kann.

hW = in . readLine () ; ist trotzdem dann falsch, weil hw vom Typ int ist. Jedoch wird in folgender Zeile ein String zum Einlesen erwartet. Also muss , da man eine Zahl einlesen will, das dem Programm kenntlich gemacht werden. Das geht mit der Methode Integer.parseInt();
Hier wird dann anzeigt, dass ein int Wert von der Tastatur eingelesen werden soll:
Richtig wäre es also:
hW=Integer.parseInt(in.readLine ());

Der nächste Fehler ist in Zeile 10:
Da Antwort von Typ int ist (also ganzzahlig), kann das Programm die Rechnung 2.0 * hW ausführen, da das Ergebnis vom Typ double wäre. Eine implizite Konvertierung funktioniert nicht, da Java ja keine Nachkommastellen gespeichert hat, da alle Werte ganzzahlig sind, d.h richtig wäre es so:


antwort = 2* hW ;

Der nächste Fehler ist in der if Bedingung


Hier erwartet Java einen boolschen Wert. Hier steht jedoch ein int - Wert. Man braucht also das doppelte == als Vergleichsoperator, um den Fehler zu beheben if( antwort == 42)
Jetzt fehlen noch jeweils 2 eckige Kammern für die if und else Schleife. Die syntaktische Strukur von Java muss eingehalten werden.





Kann vllt jmd drüberschauen, ob das so passt smile
04.11.2017 11:49
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Fehler korrigieren