Type mismatch: cannot convert from int to boolean kommt als Fehlermeldung?

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.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

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++) ...

Woher ich das weiß:Studium / Ausbildung – Informatik studiert und mit PCs & Technik beschäftigt

eine For-Schleife hat drei Statements. Das mittlere muss ein boolscher Wert sein ... Du hast als mittleren Wert jedoch i++ stehen ...

hallohierihr 
Fragesteller
 09.02.2021, 22:06

Was sollte ich hinschreiben?

0
xxxcyberxxx  09.02.2021, 22:17
@hallohierihr

Eventuell hilft es dir, eine for-Schleife umzuschreiben:

for (statement1; statement2; statement3) {
  // code
}

ist gleichzusetzen mit

statement1;
while (statement2) {
  // code
  statement3;
}
1

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...