C++ Fehlercode?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Statt "int guess;" schreibe: "int guess = 0;"

Wenn dein Programm bei "while ( secretNum != guess)" ankommt, wurde secretNum der Wert 7 bereits zugewiesen, die Variable guess ist vorhanden, hat aber noch keinen Wert bekommen. Das wird angemeckert.

Es gibt auch Compiler(einstellungen), die so etwas leider nur als Warnung betrachten. Dann hat die Variable bei jedem Programmstart einen zufälligen Wert, evtl. auch = 7. Das Programm ist nicht deterministisch, macht also nicht jedes Mal das Gleiche.


NicoDw 
Beitragsersteller
 22.03.2020, 13:54

Danke, hat geholfen.

Bin noch neu in der Programmierer Branche, bin also immer sehr dankbar wenn mir jemand hilft :)

0
gogogo  22.03.2020, 13:56
@NicoDw

Habe das noch etwas genauer erklärt. Erst mal schnell die Korrektur, damit du weiter kommst.

Ja, Programmieren hat am Anfang vor allem was damit zu tun, zu lernen, was Fehlermeldungen aussagen und wie die korrigiert werden. Da muss jeder wohl durch.

Bei jeder neuen Programmier- oder Auszeichnungssprache von Neuem.

0

Du versuchst, die nicht initialisierte Variable guess zu vergleichen. Nicht initialisiert bedeutet, dass du der Variable keinen Wert gegeben hast. "secretNum" ist initialisiert mit 7:

int secretNum = 7;

guess ist jedoch nicht initialisiert:

int guess;

Direkt in der nächsten Zeile versuchst du aber, die Variable guess mit secretNum zu vergleichen:

while (secretNum != guess)

Das geht aber nicht, da guess eben nicht initialisiert wurde ("nicht existiert" bzw. keinen Wert hat). Du musst guess daher mit einem Wert initialisieren, z.B. -1.

Ein Großteil der Zeit eines Programmierers, selbst beruflich, wird übrigens meist nicht mit dem Programmieren verbracht, sondern auf Google. So auch in diesem Fall, das erste Ergebnis, wenn du die Fehlermeldung googelst, hätte dich schon weiter gebracht: https://www.computerbase.de/forum/threads/die-nicht-initialisierte-lokale-variable-n-wurde-verwendet-wo-ist-der-fehler.974027/

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

NicoDw 
Beitragsersteller
 22.03.2020, 13:56

Es war noch ein anfangs Fehler von mir,

Trotzdem danke :)

0

Im Prinzip steht es ja da. Du hast

1 int secretNum = 7;

2 int guess;

und

3 while (secretNum != guess)

aber welchen Wert hat guess denn in der Zeile 3? Du musst bei 2 "int guess" schon einen Wert hinzufügen.


NicoDw 
Beitragsersteller
 22.03.2020, 13:55

Hat geholfen, danke :)

1