Jak działa if continue?

0

Hej mam problem ze zrozumieniem instrukcji if continue
mam 2 przykłady

 int i;
 for (i = 0 ; i < 100 ; ++i) {
   printf ("Poczatek\n");
   if (i > 40) continue ;
   printf ("Koniec\n");
 }

oraz

int main(){
    double i=0, x, y, firstX, firstY, secondX, secondY, curveSum;
    for(x,y; scanf("%lg%lg", &x, &y)==2;i++){
        if(i==0){
            firstX=fabs(x);
            firstY=fabs(y);
            continue;
        }
        secondX=fabs(x);
        secondY=fabs(y);

        curveSum+=sqrt(pow((firstX>secondX)?firstX-secondX:secondX-firstX,2.0)+pow((firstY>secondY)?firstY-secondY:secondY-firstY,2.0));
        firstX=fabs(x);
        firstY=fabs(y);
    }
    printf("%lg", curveSum);
    return 0;
}

nie rozumiem dlaczego w 1 przypadku if nie ma tych klamerek {} i dlaczego instrukcja

 printf ("Koniec\n");

wykonuje się gdy warunek nie jest spełniony a w 2 przypadku instrukcja wykonuje się gdy warunek jest spełniony.
Czy gdy if ma klamerki to continue inaczej działa?

Bardzo proszę o wytłumaczenie jak działa if continue.

4

continue pomija obecną iterację pętli i przechodzi do następnej.

Bardzo prosty przykład:

for (int i = 0; i < 5; i++) 
{
	if (i == 3)
		continue;

	printf("%d\n", i);
}

Wynik:

0
1
2
4

To czy są klamry czy nie nie ma znaczenia.

1

Gdy nie ma klamer, to wykonuje się tylko pierwsza następna instrukcja.

1

Nie wiem czy uświadomiłeś(aś?) to sobie, nie ma czegoś takiego jak instrukcja if continue. continue dotyczy wyłącznie pętli w której się znajduje (czyli for, while i do while).

1

[Continue statement] causes the remaining portion of the enclosing for, while or do-while loop body to be skipped.
Used when it is otherwise awkward to ignore the remaining portion of the loop using conditional statements.

A compound statement, or block, is a brace-enclosed sequence of statements and declarations. (...) The compound statement allows a set of declarations and statements to be grouped into one unit that can be used anywhere a single statement is expected (for example, in an if statement or an iteration statement) (...).

Inny przydatny link dla języka C: https://docs.microsoft.com/en-us/cpp/c-language/organization-of-the-c-language-reference.

Mozesz też zerknąć tutaj: http://en.cppreference.com/w/cpp, wydaje mi się, że dla języka C++ jest to jakoś szerzej omówione. Oraz tutaj, też C++, ale strona niesamowicie pomocna: http://www.cplusplus.com/reference/. Korzystałem z tego, gdy jeszcze uczyłem się tych języków. Dokładnie o instrukcjach i nawiasach jest dla języka C++ tu: http://www.cplusplus.com/doc/tutorial/control/.


Tak przy okazji: szkoda, że tej świetnej stronie http://en.cppreference.com/w/ brakuje tłumaczenia bardzo wielu artykułów na polski.

1 użytkowników online, w tym zalogowanych: 0, gości: 1