如何在某个阶段打破循环

时间:2015-02-10 08:27:55

标签: c#

我有一个矩阵(int [8,8]),里面有二进制数字。

我正在尝试在控制台上写下最左边的列号,这样在列号左侧的矩阵中有三个1可用(从上到下读,左到写)。例如 - 在下面,列号将为2(列的索引从0到7):

  

00000000
  01000000
  千万
  01000000
  00101000
  00000110
  00000010
  00000000

我使用此代码,但它无法正常工作,我已经坚持使用它了:

for (int column = 0; column < 8; column++)
{
    for (int row = 0; row < 8; row++)
    {
        int counter=0;
        if (matrix[row, column] == 1)
        {
            counter++;
        }
        if (counter==3)
        {
            break;
            Console.WriteLine(column);
        }
    }
}

4 个答案:

答案 0 :(得分:1)

以上解决方案仅打破计数器增加的内循环并继续运行其余的lopps(外部和内部而不增加计数器 - 它达到3时它保持3并继续处理其余的工作考虑柜台是3) 因此,它在控制台上从1(计数器为3的第一列)到7(直到最后一列)给出结果。 如何以这样的方式打破循环,它只给我一行,并打破两个循环,计数器得到3?

答案 1 :(得分:0)

你的计数器应该在内部循环之外,在休息之前应该是Console.WriteLine:

        for (int column = 0; column < 8; column++)
        {
            int counter=0;
            for (int row = 0; row < 8; row++)
            { 
                if (matrix[row, column] == 1)
                {
                    counter++;
                }
                if (counter==3)
                {
                    Console.WriteLine(column);
                    break;
                }
            }                    
        }

答案 2 :(得分:0)

将你的计数器放在两个循环之外,然后在Console.Writeline

之后
        var counter=0;
        for (var column = 0; column < 8; column++)
        {
            for (var row = 0; row < 8; row++)
            { 
                if (matrix[row, column] == 1)
                {
                    counter++;
                }
                if (counter==3)
                {
                    Console.WriteLine(column);
                    break;
                }
            }                    
        }

答案 3 :(得分:0)

我认为最好首先检查计数第二步使用计数器++这有助于你做更低的动作

 int counter=0;
        for (int row = 0; row < 8; row++)
        { 
            if (matrix[row, column] == 1)
            {
                if (counter==3)
                  {
                    Console.WriteLine(column);
                    break;

                  }
                else
                  {
                   counter++;
                  }
            }


        }