2017-10-20 124 views
1
void dibuja(int lineas, char caracter){ 
int i=0,j=0; 
cout<<lineas<<caracter; 
for(i = 1; i == lineas; i++){ 

    for(j=i; j<=lineas; j++){ 
     cout<<caracter; 
    } 

    cout<<endl; 
} 
} 

所以我有這樣的代碼,當我嘗試運行它編譯器不返回任何錯誤,但功能不中環路進入。它打印線條和caracter但不是它的supossed做的三角形。我的函數不進入for循環,我不知道爲什麼

+0

'c'或'C++'決定你的想法。 – Michi

回答

1

for環只不過是一個美化的while循環以上。

環路如

for (init_expression; loop_condition; iterator_expression) 
    loop_statement; 

等於

{ 
    init_expression; 

    while (loop_condition) 
    { 
     loop_statement; 
     iterator_expression; 
    } 
} 

如果你這麼認爲,它可能是更容易理解,你for循環迴路,而i == lineastrue。如果lineas等於0,那麼只有當您的初始化表達式時,它纔會循環一次,因爲下一次迭代(當i等於1)條件將不再爲真。

1

看來你的意思是

for(i = 1; i != lineas; i++){ 

,而不是

for(i = 1; i == lineas; i++){ 
1

for循環採取的第二個「說法」循環條件...類似於「循環,當......」因爲你有i == lineas它永遠不會進入循環。

您應該使用i <= lineasi != lineas

1

你可能原意是要寫for(i = 1; i != lineas; i++)for(i = 1; i < lineas; i++)在for循環。

你能想到的條件爲「執行for循環中的指令,只要條件爲真。作爲i開頭不等於lineas,循環沒有得到所有執行。

相關問題