Switch Case производит итерацию по всему массиву - C#
Формулировка задачи:
Всем здравствуйте!
Столкнулся с очень странной проблемой: есть матрица 10 строк, 3 столбца. Матрица заполняется char'ами, далее идет такая штука:
В итоге получаю из вот такой:
e-e-e
e-w-e
e-e-d
e-e-e
e-e-e
e-e-e
такую:
e-Z-e
e-W-e
e-e-D
e-Z-Z
e-Z-Z
e-Z-Z
пробовал switch()case менять на if-ы, проблема остается. Вообще не понятно как такое получается, может быть поможет кто?
for (int j = 0; j < 3; j++)
for (int i = 0; i < matrix.Count; i++)
switch (matrix[i][j])
{
case 'w':
matrix[i][j] = 'W';
matrix[i + 1][j] = 'Z';
break;
case 'j':
matrix[i][j] = 'J';
matrix[i + 1][j] = 'Z';
break;
case 'd':
matrix[i][j] = 'D';
matrix[i + 1][j] = 'Z';
break;
}Решение задачи: «Switch Case производит итерацию по всему массиву»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace ConsoleApplication26 {
class Program {
static void Main(string[] args) {
var matrix = new List<char[]> {
new[] { 'e', 'e', 'e' },
new[] { 'e', 'w', 'e' },
new[] { 'e', 'e', 'd' },
new[] { 'e', 'e', 'e' },
new[] { 'e', 'e', 'e' },
new[] { 'e', 'e', 'e' },
};
// копипаста
for (int j = 0; j < 3; j++)
for (int i = 0; i < matrix.Count; i++)
switch (matrix[i][j]) {
case 'w': {
matrix[i][j] = 'W';
matrix[i + 1][j] = 'Z';
break;
}
case 'j': {
matrix[i][j] = 'J';
matrix[i + 1][j] = 'Z';
break;
}
case 'd': {
matrix[i][j] = 'D';
matrix[i + 1][j] = 'Z';
break;
}
}
matrix.ForEach(r => Console.WriteLine(string.Join(@"-", r)));
}
}
}