Почему нет вывода, когда значение индекса равно 0 - PullRequest
0 голосов
/ 07 февраля 2019

Измените значение индекса с o на 1. Цикл - это значение печати.Почему он не печатает никакого значения, когда индексу присвоено значение 0?

В настоящее время i = 0 - нет вывода Make i = 1 - бесконечный цикл

#include<stdio.h>

int main()
{
    for(int i = 0;i++;i<100)
    {
        printf("Mahesh\n");
    }
}

enter code here

Ответы [ 4 ]

0 голосов
/ 07 февраля 2019
#include<stdio.h>

int main()
{
    int i = 0;
                            // Postfix Increment Operator
    for (i = 0; i++; i<100) // Condition is false, Because the i is Zero
    {
        printf("Mahesh");
    }

    printf("%d", i);        // i outputs One here

                            // Prefix Increment Operator
    for (i = 0; ++i; i<100) // Condition is True, Because the i is One
    {
        printf("Mahesh");
    }
}
0 голосов
/ 07 февраля 2019

Синтаксис для цикла for в C следующий:

for ( init; condition; increment ) {
   statement(s);
}

-init: инициализация индексной переменной значением, с которого вы хотите начать итерацию.

-условие: условие продолжения итерации до тех пор, пока не будет выполнено

-incremenet: указывает, насколько вы хотите, чтобы программа увеличила ваш индекс на

Следовательно, в вашем примере должно быть:

for(int i = 0; i < 100; i++){
    //yourcode
}

Надеюсь, что поможет

0 голосов
/ 07 февраля 2019

Параметры цикла for:

    for(initialization; Condition; Next iteration initialization){
    //code
    }

Инициализация (ии) может быть более одного, разделенных запятыми.Условие продолжится, если будет иметь 1 (или значение TRUE, что означает то же самое, что и 1), или прервется, если условие не будет выполнено, т.е. значение 0 (или FALSE).Вы можете использовать несколько условий, используя && или ||или запятые.Третий параметр - это то, что вы хотите сделать в следующей итерации.Он также может иметь несколько команд.Я предлагаю вам запустить следующий код и изменить его, чтобы увидеть результаты:

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        int i,j;
        for( i=0,j=0;i<10 || j<5;i++,j++)
            printf("%d\t%d\n",i,j);
        return 0;
    }
0 голосов
/ 07 февраля 2019

C for loop структура:

for ( init; condition; increment )

Вы фактически добавили i++ в месте условия и i<100 в месте приращения.

Управление потоком for loop в C:

  • Шаг инициализации выполняется первым и только один раз.
  • Условие оценивается следующим, и если оно истинно, выполняется тело цикла.Если False, тело цикла не выполняется, и поток переходит к следующему оператору после цикла for.
  • После того, как тело цикла выполняется один раз, управление потоком переходит к оператору приращения, а затем к условиювычисляется снова.
  • Тело цикла, шаги Условие и приращение повторяются в одном и том же порядке до тех пор, пока условие не станет Ложным, после чего цикл for завершается.

Ваш цикл:

for(int i = 0;i++;i<100)

В этом случае i++ в качестве условия.Теперь в этом i оценивается первым, а затем ++.Так как i is 0, это приводит к выходу из цикла, поскольку условие оценивается как False.Но если вы измените i to 1, условие (т. Е. I) оценивается как True и оно входит в цикл.

Если вы не сделали это намеренно, вам нужен цикл, подобный приведенному ниже:

for (int i = 0; i < 100; i++)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...