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)));
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д