для условия цикла в C - PullRequest
       2

для условия цикла в C

0 голосов
/ 06 сентября 2018
#include<stdio.h>
int main() 
{   
  for(5;2;2)    printf("Hello"); 
  return 0;
}

Я пытаюсь выучить C. Я столкнулся с этим циклом for. Когда я скомпилировал этот код, я получил ошибку «Дерево неприводимых выражений». Цикл for, который я знаю, выглядит следующим образом

        for(i=0;i<n;i++) 

Сначала присваивается значение, затем проверяется условие, затем изменяется начальное значение.

Ответы [ 3 ]

0 голосов
/ 06 сентября 2018

Правильный код будет такой ...

#include <stdio.h> //including the library
// Main Function 
int main(){

    int i; // Declaring the variable

    // i = 0 Initializing variable i
    // i < 5, so if i >= 5 it will not execute the for loop
    // i ++, increment the variable i by 1 for every loop

    for(i = 0; i < 5; i++){
        printf("Hello");
    }
}

В вашем коде вы не объявили ни одной переменной и не поместили некоторые неизвестные вещи. Компилятор примет это как всегда true и выполнит printf("Hello"); бесконечные времена.

0 голосов
/ 06 сентября 2018

A for петля имеет структуру:

for(init; cond; incdec)

Если cond - это постоянное число, отличное от нуля, цикл выполняется бесконечно. Наличие числа 2 всегда оценивает cond как истинное.

0 голосов
/ 06 сентября 2018

Это генерирует бесконечный цикл for, потому что условие проверки цикла for всегда ненулевое или True

for(5;2;2) //the checking condition is always 2 which is non-zero or true in other sense

Проверка условия оператора находится в скобках после первой точки с запятой (;). В вашем случае это только 2, который считается True.

выход

HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHell......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...