Правильное использование оператора Break в цикле - C#
Формулировка задачи:
В общем есть у меня вот такой цикл, связанный с двумерным массивом.
Он считает сумму элементов в строках массива "а", где нет отрицательных чисел, и записывает сумму в ячейки массива "b". Если есть отрицательное число, то ячейке массива "b" присваивается значение 0 и нужно выйти из внутреннего цикла и перейти на следующую ступень во внешнем цикле.
Я пробовал сделать это с помощью оператора break; но он во внешний цикл не выходит.
Как мне осуществить мою задумку ?
Вот полный код программы:
for (int i = 0; i < Y; i++)
{
for (int j = 0; j < X; j++)
{
if (a[i, j] > 0) b[i] += a[i, j];
else b[i] = 0; break;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите высоту матрицы:");
string y = Console.ReadLine();
int Y = Convert.ToInt32(y);
Console.WriteLine("Введите длину матрицы:");
string x = Console.ReadLine();
int X = Convert.ToInt32(x);
int kl=0;
int min = 0;
int sum = 0;
int max = 0;
int sum2 = 0;
int[,] a = new int[Y, X];
int[] b = new int[Y];
Random r = new Random();
Console.WriteLine("Массив первоначальный: ");
for (int i = 0; i < Y; i++)
{
for (int j = 0; j < X; j++)
{
a[i, j] = r.Next(-100, 100);
if (a[i, j] < 0)
{
Console.Write(a[i, j] + " ");
}
else
{
Console.Write(" " + a[i, j] + " ");
}
}
Console.WriteLine();
}
for (int i = 0; i < Y; i++)
{
for (int j = 0; j < X; j++)
{
if (a[i, j] > 0) b[i] += a[i, j];
else b[i] = 0; break;
}
}
Console.WriteLine();
for (int i = 0; i < Y; i++)
{
if (b[i] != 0) Console.WriteLine("Сумма чисел в строке " + (i+1) + " = " + b[i]);
}
Console.ReadKey();
}
}
}Решение задачи: «Правильное использование оператора Break в цикле»
textual
Листинг программы
if (a[i, j] > 0)
{
b[i] += a[i, j];
}
else
{
b[i] = 0;
break;
}