C#: Конструкция if-else
Условная конструкция if имеет несколько разновидностей, одна из которых включает в себя блок, выполняющийся в случае если условие ложно. Пример:
if (x > 5)
{
// Если условие true
}
else
{
// Если условие false
}Такая структура может понадобится при начальной инициализации значения. В примере ниже проверяется, если email отсутствует, то устанавливаем значение по умолчанию, если его передали, то выполняем нормализацию.
// Где-то здесь приходит email
if (email.Equals(""))
{
// Если email пустой, то ставим дефолт
email = "support@hexlet.io";
}
else
{
// иначе чистим
email = email.Trim().ToLower();
}
// Здесь используем эту почтуЕсли ветка if содержит return, то else становится не нужен и его можно просто опустить:
if (/* условие */)
{
return /* какое-то значение */;
}
// продолжаем что-то делать
// else не нуженЗадание
Реализуйте метод NormalizeUrl(), которая выполняет нормализацию URL. Она принимает адрес сайта и возвращает его с https:// в начале.
Функция принимает адреса в виде АДРЕС или http://АДРЕС, но всегда возвращает адрес в виде https://АДРЕС. На вход функции также может поступить адрес в уже нормализованном виде https://АДРЕС, в этом случае ничего менять не нужно.
Примеры вызова:
Console.WriteLine(App.NormalizeUrl("https://ya.ru")); // => "https://ya.ru"
Console.WriteLine(App.NormalizeUrl("google.com")); // => "https://google.com"
Console.WriteLine(App.NormalizeUrl("http://ai.fi")); // => "https://ai.fi"Один из способов решить задачу:
- Проверить, начинается ли строка с
https:// - Если да, вернуть строку как есть
- Если строка начинается с
http://, отбросить этот префикс - Добавить
https://к результату
Для проверки начала строки используйте метод StartsWith(), а чтобы отбросить префикс — Substring().
C#: Конструкция if-else
Условная конструкция if имеет несколько разновидностей, одна из которых включает в себя блок, выполняющийся в случае если условие ложно. Пример:
if (x > 5)
{
// Если условие true
}
else
{
// Если условие false
}Такая структура может понадобится при начальной инициализации значения. В примере ниже проверяется, если email отсутствует, то устанавливаем значение по умолчанию, если его передали, то выполняем нормализацию.
// Где-то здесь приходит email
if (email.Equals(""))
{
// Если email пустой, то ставим дефолт
email = "support@hexlet.io";
}
else
{
// иначе чистим
email = email.Trim().ToLower();
}
// Здесь используем эту почтуЕсли ветка if содержит return, то else становится не нужен и его можно просто опустить:
if (/* условие */)
{
return /* какое-то значение */;
}
// продолжаем что-то делать
// else не нуженЗадание
Реализуйте метод NormalizeUrl(), которая выполняет нормализацию URL. Она принимает адрес сайта и возвращает его с https:// в начале.
Функция принимает адреса в виде АДРЕС или http://АДРЕС, но всегда возвращает адрес в виде https://АДРЕС. На вход функции также может поступить адрес в уже нормализованном виде https://АДРЕС, в этом случае ничего менять не нужно.
Примеры вызова:
Console.WriteLine(App.NormalizeUrl("https://ya.ru")); // => "https://ya.ru"
Console.WriteLine(App.NormalizeUrl("google.com")); // => "https://google.com"
Console.WriteLine(App.NormalizeUrl("http://ai.fi")); // => "https://ai.fi"Один из способов решить задачу:
- Проверить, начинается ли строка с
https:// - Если да, вернуть строку как есть
- Если строка начинается с
http://, отбросить этот префикс - Добавить
https://к результату
Для проверки начала строки используйте метод StartsWith(), а чтобы отбросить префикс — Substring().
Ваше упражнение проверяется по этим тестам
#load "/src/Init.csx"
#load "Exercise.csx"
;
using PowerAssert;
var actual1 = App.NormalizeUrl("yandex.ru");
PAssert.IsTrue(() => actual1 == "https://yandex.ru");
var actual2 = App.NormalizeUrl("http://yandex.ru");
PAssert.IsTrue(() => actual2 == "https://yandex.ru");
var actual3 = App.NormalizeUrl("https://yandex.ru");
PAssert.IsTrue(() => actual3 == "https://yandex.ru");
var actual4 = App.NormalizeUrl("httpsecurity.com");
PAssert.IsTrue(() => actual4 == "https://httpsecurity.com");
var actual5 = App.NormalizeUrl("https://httpbin.org/redirect-to?url=http://google.com");
PAssert.IsTrue(() => actual5 == "https://httpbin.org/redirect-to?url=http://google.com");
var actual6 = App.NormalizeUrl("httpbin.org/redirect-to?url=https://google.com");
PAssert.IsTrue(() => actual6 == "https://httpbin.org/redirect-to?url=https://google.com");
var actual7 = App.NormalizeUrl("httpbin.org/redirect-to?url=http://google.com");
PAssert.IsTrue(() => actual7 == "https://httpbin.org/redirect-to?url=http://google.com");Решение учителя откроется через:
20:00
