Double y, c;
int x;
Console.Write("Введите x =");
x = Convert.ToInt32(Console.ReadLine());
if (x < -5) y = (2 * x + 5);
else
if (-5 < x || x <= 5) y = (10);
else
if (5 < x || x < 10) y = (2 * Math.Pow(x, 2));
else
if (x >= 10) y = (Math.Sqrt(x));
else
if (x == -5) Console.Write("Неверное значение x");
c = x + 2 * y;
Console.WriteLine("c="+c);
Console.WriteLine("y="+y);
C#
Почему "y" не присвоено значение?
Double y = 0, c;
Vоdunoi Berdnikov
а по другому как-нибудь можно?
У тебя ошибки в условиях. должны быть &&. иначе 45 проходит по второму if, т.к. вторая часть условия проверяться не будет при ||. 45 > -5 это true => y получит значение 10, а это не верно.
вообще на C# это выглядит так.
https://learn.microsoft.com/ru-ru/dotnet/csharp/fundamentals/functional/pattern-matching
вообще на C# это выглядит так.
double y, c;
int x;
Console.Write("Введите x = ");
if (int.TryParse(Console.ReadLine(), out x))
{
try
{
y = x switch
{
< -5 => 2 * x + 5,
> -5 and 10,
> 5 and < 10 => 2 * x * x,
>= 10 => Math.Sqrt(x),
-5 => throw new Exception("Неверное значение x")
};
c = x + 2 * y;
Console.WriteLine($"c = {c:N3}");
Console.WriteLine($"y = {y:N3}");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
else
Console.WriteLine("Ошибка ввода. Ожидалось целое число.");
почитай про pattern matchinghttps://learn.microsoft.com/ru-ru/dotnet/csharp/fundamentals/functional/pattern-matching
Проще говоря. В начале у тебя Double y, c;
Это ты типа, говоришь: "У меня есть коробка y и коробка с!"
Потом идут ifы, в них ты кладешь в коробку шарик с числом нарисованным на нем. Однако, если ни один if не будет true, то ничего ты в коробку не положишь. Если в ней ничего не лежит, то как мы можем узнать, что там лежит?
Это ты типа, говоришь: "У меня есть коробка y и коробка с!"
Потом идут ifы, в них ты кладешь в коробку шарик с числом нарисованным на нем. Однако, если ни один if не будет true, то ничего ты в коробку не положишь. Если в ней ничего не лежит, то как мы можем узнать, что там лежит?
Похожие вопросы
- Можно ли решить задачку используя вместо if else " SWITCH " , и когда лучше что использовать ?
- Задайте значения M и N. Напишите программу, которая найдёт сумму натуральных элементов в промежутке от M до N.,
- System.InvalidCastException: "Unable to cast object of type 'System.String[]' to type 'System.IConvertible'."
- C#.Что за значение NULL?Что не так?
- Почему операции инкремента и декремента - унарные?
- Почему в C# логические операторы имеют именно такой вид (||, |, &&, &, !)
- C#.Почему double не конвертируется во float?
- Решил попробовать изучать программирование (C# конкретно) и вот не могу понять почему код с упражнения не работает
- Почему в C# нумерация (индексы) элементов массива начинаются с нуля, а не с единицы?
- Приведите аргументы почему с# (си шарп) плохой? без коментариев (он норм)