2017-10-20 66 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,循环没有得到所有执行。

相关问题