如何在 For 循环中输入两个条件?

how to input two conditions in a For Loop?

我想创造一个条件,让空白不会因为空白-=1而变成负数。 例如,如果 n = 3,blank = 1 因此将打印两个“#”,但是我希望它在循环时停在 0

这是我的代码

for (int blank = n-2; blank < n; blank -=1) 
    printf("#");
printf("\n");

这就是我想要实现的目标

for (int blank = n-2; blank < n or blank > 0; blank -=1) 
    printf("#");
printf("\n");

for (int blank = n-2; blank < n; blank -=1) 
printf("#");
    {
        if (blank == 0) break;
    }
    printf("\n");

谢谢

只需使用逻辑或

blank < n or blank > 0 可以表示为:

(空白 < n)|| (空白 > 0)

你在你的伪代码中使用了 "or",但你真的想循环 while blank is less n and while blank 大于 0&& 是逻辑与运算符,因此您可以使用以下内容:

for (int blank = n-2; blank < n && blank > 0; blank -= 1) 

blank < n 始终为真,因此您可以简单地使用以下内容:

for (int blank = n-2; blank > 0; blank -= 1) 

请注意,对于整数类型,i -= 1 可以写成 --i

for (int blank = n-2; blank > 0; --blank)     # blank goes from n-2 to 1

这会产生相同的结果:

for (int blank = n-2; blank-- > 0; )          # blank goes from n-3 to 0

如果保证n至少是2,你也可以用一个常用的成语:

for (int blank = n-2; blank--; )              # blank goes from n-3 to 0 if n>=2