Как ввести два условия в For L oop? - PullRequest
0 голосов
/ 13 января 2020

Я хочу создать условие, чтобы пробел не стал отрицательным из-за пробела - = 1. Например, если n = 3, пусто = 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");

спасибо

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Вы использовали «или» в своем псевдокоде, но вы действительно хотите l oop, пока blank меньше n и , тогда как 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
0 голосов
/ 13 января 2020

Просто используйте логическое ИЛИ

пробел 0 можно представить как:

(пробел 0)

...