如何在 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
我想创造一个条件,让空白不会因为空白-=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