Прескакање наредби унутар циклуса¶
Наредба 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
*
**
***
****
*****