2016-08-01 80 views
-5

Ich fürchte, meine Frage wäre nicht hilfreich für dieses Forum, aber ich konnte wirklich keine Antwort dafür finden. Vor allem, Entschuldigung für Super-Newbie-Frage.ein Muster von '*' drucken

Nehmen wir an, ich wurde gebeten, ein Dreiecksmuster von * s mit for-Schleife zu erstellen.

Der Code, den ich hatte, war:

for (row=1;row<=10;row++){ 
for (col=1;col<=row;col++){ 
cout << "*"; 
} 
cout << "\n"; 
} 
cout << "\n"; 

für Druckdreiecksform von * s.However, schlug die Lösung wie folgt:

for (int row = 1; row <= 10; ++row) { 
for (int col = 1; col <= row; ++col) 
cout << '*'; 
cout << '\n'; 
} 
cout << '\n'; 

Beide schienen gleiche Ergebnis zu produzieren, aber wie kommen ? Ich dachte '++ col' addiert 1 zum Anfangswert, der mit ** anfangen würde zu drucken.

Gibt es außerdem einen Unterschied zwischen der Verwendung von "statt"? Ich schaute zurück, um zu sehen, ob ich es aus dem Lehrbuch verpasste, aber ich konnte den Grund nicht finden. Außerdem konnte ich bei google search keine gute Antwort finden.

Bitte helfen.

+7

Stack Overflow ist kein Forum. –

+2

Sie möchten den Unterschied zwischen * pre-increment * und * post-increment * und * String-Literalen * und * Zeichenliteralen * wissen. – jaggedSpire

+0

Oh ist das der Grund, warum ich sofort -3 bekam? – Minjae

Antwort

1

die Struktur einer for-Schleife ist

for(int i=0; i<10; i++)

int i=0; der Initialisierer ist. Dies wird nur einmal vor dem Start der for-Schleife ausgeführt.

i<10 Dies ist die Bedingung, die ausgewertet wird vor jeder Schleife.

i++ ist der nachträgliche Einfall. Es wird nach jede Schleife ausgeführt.

Also in Ihrem Beispiel obwohl ja, ++row und ++col die Variable inkrementieren. Es passiert nicht bis nach der Körper der Schleife.

Daher macht die Verwendung von ++row oder row++ keinen Unterschied für das Endergebnis.

+0

Danke für die Antwort, aber ich bin immer noch unklar mit der Verwendung von Inkrement. Wenn ich in for-loop inkrementiere, machen ++ i und i ++ keinen Unterschied. – Minjae

+2

Es macht keinen Unterschied in diesem Zusammenhang @ Minjae –

+0

@FirstStep Danke! – Minjae