Правильное использование оператора Break в цикле - C#

Узнай цену своей работы

Формулировка задачи:

В общем есть у меня вот такой цикл, связанный с двумерным массивом.
 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;
                }
            }
Он считает сумму элементов в строках массива "а", где нет отрицательных чисел, и записывает сумму в ячейки массива "b". Если есть отрицательное число, то ячейке массива "b" присваивается значение 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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы