2016-03-19 10 views
-1

Wenn ich diese Funktion aufrufen, zeigt es keine *. Aber wenn ich == zu < ändere es funktioniert. Warum?C++ Code nicht, was ich will

void starBox(int size){ 
    for(int i = 0; i == size; i++){ 
     for(int j = 0; j == size; j++){ 
      cout << '*'; 
     } 
     cout << endl; 
    } 
} 
+2

Weil 'i == size' nur mit diesem einen spezifischen Fall übereinstimmt. –

+2

Was genau versuchen Sie zu erreichen? Ich kann Ihnen möglicherweise besser helfen, wenn Sie mir sagen, was Sie tun möchten. – Afflicted

Antwort

1

Ich denke, Ihr Problem zu Missverständnissen, was in der Mitte durch die Bedingung der for Schleife bedeutet. Dies ist eine Schleife Fortsetzung Bedingung, was bedeutet, dass die Schleife true sein muss, um fortzufahren. Die Nachbedingung des Loops ist die Umkehrung seiner Fortsetzungsbedingung.

Wenn ich diese Funktion aufrufen, zeigt es keine * an. Diese

ist, weil die Schleife Fortsetzungsbedingung ist, es sei denn falsesize Null ist, so Schleifenkörper übersprungen.

Aber wenn ich == zu < ändern, funktioniert es. Warum?

Da die Schleife Fortsetzungsbedingung wird true und bleibt true, bis die Schleife beendet ist. Deshalb funktioniert < funktioniert; != würde auch funktionieren.