none
Как остановить цикл ? RRS feed

  • Вопрос

  • Вопрос такой, к примеру

    идет Цикл

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

    {

    for(int j=0;j<=1000;j++)

    {

    ///Какой то процес цикла i=0; и j  по своему циклу!

    if((A==string.Empty) && (B==string.Empty) &&(C==string.Empty) &&.... несколько)

    {

    если случилось так что на 540-ом цикле j программа обнаружил что считываемые строки пустые

    и надо  переити к следующему Циклу i=1 и опять начать цикл j  занова

    }

    }

    }

    т.е. хочу сделать так чтобы программа при считываение не считывал все полностью, а до определеной строки!

    Как это можно сделать ?

    • Перемещено PashaPashModerator 8 ноября 2010 г. 9:51 (От:Работа в среде Visual Studio)
    8 ноября 2010 г. 9:35

Ответы

  • Что неработает? break; прерывает цикл по j. Цикл по i идет дальше. Но раз пустой - то разницы никакой. Если после цикла по j есть какой-то код, и его так же надо пропустить - вводи флаг, вроде:

    bool skipAndContinueOnNextI;
    for (int i = 0; i <= 10; i++)
    {
        skipAndContinueOnNextI = false;
        for (int j = 0; j <= 1000; j++)
        {
            ///Какой то процес цикла i=0; и j  по своему циклу!
            if (условие)
            {
                skipAndContinueOnNextI = true;
                break;
            }
        }

        if (skipAndContinueOnNextI)
        {
            continue;
        }

        // тут какой-то код, который тоже надо пропустить
    }

    • Помечено в качестве ответа Jualy 8 ноября 2010 г. 10:48
    8 ноября 2010 г. 10:36
    Модератор

Все ответы

  • for (int i = 0; i <= 10; i++)
    {
        for (int j = 0; j <= 1000; j++)
        {
            if (условие)
            {
                break;
            }
        }
    }
    • Предложено в качестве ответа PashaPashModerator 8 ноября 2010 г. 9:52
    • Отменено предложение в качестве ответа PashaPashModerator 8 ноября 2010 г. 12:25
    8 ноября 2010 г. 9:50
    Модератор
  • Неработает! цикл дальше идет хоть и пустой! до конца !
    8 ноября 2010 г. 10:20
  • Значит, твоя проверка условия не отрабатывает.

    Вот пример:

          for (int i = 0; i < 10; i++)
          {
            Console.WriteLine("i: " + i.ToString()); 
            for (int j = 0; j < 100; j++)
            {
              Console.WriteLine("j: " +j.ToString()); 
              if (j == 10) // Твоя проблема здесь
                break;  // а не здесь         
            }        
          }
    
    

    8 ноября 2010 г. 10:32
    Модератор
  • Все сам разобрался!
    8 ноября 2010 г. 10:35
  • Что неработает? break; прерывает цикл по j. Цикл по i идет дальше. Но раз пустой - то разницы никакой. Если после цикла по j есть какой-то код, и его так же надо пропустить - вводи флаг, вроде:

    bool skipAndContinueOnNextI;
    for (int i = 0; i <= 10; i++)
    {
        skipAndContinueOnNextI = false;
        for (int j = 0; j <= 1000; j++)
        {
            ///Какой то процес цикла i=0; и j  по своему циклу!
            if (условие)
            {
                skipAndContinueOnNextI = true;
                break;
            }
        }

        if (skipAndContinueOnNextI)
        {
            continue;
        }

        // тут какой-то код, который тоже надо пропустить
    }

    • Помечено в качестве ответа Jualy 8 ноября 2010 г. 10:48
    8 ноября 2010 г. 10:36
    Модератор