Type mismatch: cannot convert from int to boolean kommt als Fehlermeldung?
Habe in der 16.ten Zeile diese Fehlermeldung bekommen: "Type mismatch: cannot convert from int to boolean"
Woran könnte das liegen
?
5 Antworten
Eine For-Schleife ist wie folgt aufgebaut:
1. Initialisierung:
Meißt erstellt man hier einen Zähler i und setzt ihn auf einen Start-Wert.
int i = 0;
2. Bedingung:
Ein Ausdruck der entweder 'wahr' oder 'falsch' ist. Ist er wahr, wiederholt sich die for-Schleife ein weiteres mal. Ist er falsch, ist die for-Schleife zuende.
Meißt prüft man hier, ob der Zähler kleiner als ein bestimmter Wert ist. Die for-Schleife läuft dann solange, bis der Zähler diesen Wert erreicht, und die Bedingung 'falsch' zurückgibt.
i < 10;
3. Befehl:
Meißt erhöht man an dieser Stelle den Zähler.
i++
-------------------------
Mein Beispiel wäre zusammengesetzt also
for (int i = 0; i < 10; i++){
//10 Mal Wiederholender Code
}
Erst wird die Variable i mit Wert 0 erstellt (int i = 0). Dann wird geprüft ob sie kleiner als 10 ist (i < 10). Falls ja wird das, was innerhalb der For-Schleife steht (also in den { .. }), ausgeführt. Dann wird i um 1 erhöht (i++).
Falls die Bedingung 'i < 10' mal falsch ist (was sie nach 10 Durchläufen sein wird, da wir i jedes mal erhöhen), dann ist die Schleife zuende.
Da fehlt das Vergleichskriterium. Erst der dritte "Parameter" in der for Schleife ist das Inkrement. Normalerweise sieht das in etwa so aus:
for ( int i = 0; i < MAX ; i++) ...
eine For-Schleife hat drei Statements. Das mittlere muss ein boolscher Wert sein ... Du hast als mittleren Wert jedoch i++ stehen ...
Eine Bedingung, z.B., dass i kleiner als ein bestimmter Wert sein muss.
Eventuell hilft es dir, eine for-Schleife umzuschreiben:
for (statement1; statement2; statement3) {
// code
}
ist gleichzusetzen mit
statement1;
while (statement2) {
// code
statement3;
}
Der Code ist ein einziges wirres Chaos - der eine Fehler, den dir da der Compiler anzeigt, ist noch eine Kleinigkeit. In deinen vorigen Fragen wurdest du darauf hingewiesen, hast es aber ignoriert.
Fang mal mit einer der Aufgabenstellungen an und löse sie Schritt für Schritt: nach jedem Schritt testen ob es klappt, dann weitermachen. Mach vernünftige Einrückungen (noch besser: lerne, wie das deine Entwicklungsumgebung für dich machen kann). Lies deine Lernunterlagen zu Grundlagen der Sprachkonstrukte wie Schleifen.
Du hast vergessen anzugeben, wann die for schleife abbrechen soll...
Was sollte ich hinschreiben?