Прескакање наредби унутар циклуса

Наредба continue омогућава „прескакања” у току извршавања петље. Када се наредба continue изврши, прекида се тренутна итерације петље, па се наставља са провером тачности управљачког израза и извршавањем следеће итерације у петљи. Наредба continue има исту функционалност у for, while и do-while петљама.

Напиши програм који ће са стандардног улаза учитати вредност целобројне променљиве n, па на стандардни излаз нацртати правоугли троугао чије катете имају по n звездица *.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int n, zvezda = 0, red = 1;
    scanf("%d", &n);
    while(red <= n)
    {
        if (zvezda < red)
        {
            printf("*");
            zvezda++;
            continue;
        }
        if (zvezda == red)
        {
            printf("\n");
            red++;
            zvezda = 0;
        }
    }
    return 0;
}

У програму изнад, променљива n чува унету дужину катета у звездицама (односно број редова), променљива zvezda чува податак о тренутном броју исписаних звездица у реду и променљива red чува податак о тренутном реду у којем се исписују звездице. Петља while се извршава све док је тренутни ред мањи или једнак унетој дужини катете. У петљи:

  • Услов zvezda < red проверава да ли је број исписаних звездица мањи од броја тренутног реда. Ако je услов тачан исписује се звездица и инкрементира променљива zvezda, након чега наредба continue прекида итерацију петље, спречавајући извршавање кода испод. То значи да ће се у једном реду исписивати звездице све док је број исписаних звездица мањи од броја тренутног реда.

  • Услов zvezda == red проверава да ли је број исписаних звездица једнак броју тренутног реда. Ако је услов тачан, курсор прелази у нови ред, инкрементира се промељива red и променљивој zvezda додељује нула. То значи да се у нови ред прелази када је број исписаних звездица једнак броју тренутног реда.

Након извршавања програма стандардни излаз може да изгледа овако:

5
*
**
***
****
*****