C#: Обход строк
Циклы подходят не только для обработки чисел, но и при работе со строками. В первую очередь благодаря возможности получить конкретный символ по его индексу. Ниже пример кода, который распечатывает буквы каждого слова на отдельной строке:
class App
{
public static void PrintNameBySymbol(string name)
{
var i = 0;
// Такая проверка будет выполняться до конца строки
// включая последний символ. Его индекс `name.Length - 1`.
while (i < name.Length)
{
// Обращаемся к символу по индексу
Console.WriteLine(name[i]);
i = i + 1;
}
}
}
var name = "Arya";
App.PrintNameBySymbol(name);
// A
// r
// y
// aСамое главное в этом коде, поставить правильное условие в while. Это можно сделать сразу двумя способами: i < name.Length или i <= name.Length - 1. Оба способа приводят к одному результату.
Задание
Реализуйте статический метод App.PrintReversedNameBySymbol(), который печатает переданное слово посимвольно, как в примере из теории, но делает это в обратном порядке.
var name = "Arya";
App.PrintReversedNameBySymbol(name);
// 'a'
// 'y'
// 'r'
// 'A'C#: Обход строк
Циклы подходят не только для обработки чисел, но и при работе со строками. В первую очередь благодаря возможности получить конкретный символ по его индексу. Ниже пример кода, который распечатывает буквы каждого слова на отдельной строке:
class App
{
public static void PrintNameBySymbol(string name)
{
var i = 0;
// Такая проверка будет выполняться до конца строки
// включая последний символ. Его индекс `name.Length - 1`.
while (i < name.Length)
{
// Обращаемся к символу по индексу
Console.WriteLine(name[i]);
i = i + 1;
}
}
}
var name = "Arya";
App.PrintNameBySymbol(name);
// A
// r
// y
// aСамое главное в этом коде, поставить правильное условие в while. Это можно сделать сразу двумя способами: i < name.Length или i <= name.Length - 1. Оба способа приводят к одному результату.
Задание
Реализуйте статический метод App.PrintReversedNameBySymbol(), который печатает переданное слово посимвольно, как в примере из теории, но делает это в обратном порядке.
var name = "Arya";
App.PrintReversedNameBySymbol(name);
// 'a'
// 'y'
// 'r'
// 'A'Ваше упражнение проверяется по этим тестам
#load "/src/Init.csx"
#load "/src/RedirectOutput.csx"
#load "Exercise.csx"
;
using PowerAssert;
App.PrintReversedNameBySymbol("Hexlet");
var output = capturedConsoleOutput.ToString().Trim();
Console.SetOut(originalStdOut);
Console.Write(capturedConsoleOutput);
PAssert.IsTrue(() => output == "t\ne\nl\nx\ne\nH");Решение учителя откроется через:
20:00
