Оператор ветвления if в зависимости от условия позволяет выбрать одно из двух возможных продолжений программы. Схематично этот оператор можно изобразить так, как показано на рисунке ниже:

Формально
в терминах языка программирования это можно записать так:
if(Условие)
Оператор ветви «Да»;
else
Оператор ветви «Нет»;
Оператор работает следующим образом: вычисляется записанное в круглых скобках выражение-условие, если оно истинно, то выполняется Оператор ветви «Да», если ложно — то Оператор ветви «Нет». После этого управление передаётся на следующий оператор.
Условие — это некоторое выражение, имеющее результат логического типа. Условие всегда должно записываться в круглых скобках. Примеры записи условий:
if(a>b) — простое условие, используется операция сравнения;
if(a>0 && b>0 && c>0) — сложное условие, три операции отношения объединены в одно условие с помощью логической операции И.
По любой из ветвей оператора if положено записывать только один оператор. Если по логике программы требуется не один, а более операторов, то их с помощью фигурных скобок объединяют в блок. Таким образом, по обеим ветвям можно в итоге записывать любое количество любых операторов. В том числе и ни одного.
Пример 1. Определить, является ли заданное целое число кратным 3.
Возможный текст программы:
using System;
namespace Prim_IF
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Задайте n = ");
int n = int.Parse(Console.ReadLine());
if(n % 3 == 0)
Console.WriteLine("Число {0} кратно 3", n);
else
Console.WriteLine("Число {0} некратно 3", n);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Результаты работы (1-й вариант):
Задайте n = 15
Число 15 кратно 3
Press any key to continue . . .
Результаты работы (2-й вариант):
Задайте n = 10
Число 10 некратно 3
Press any key to continue . . .
Пример 2. Даны три числа: a, b, c. Могут ли эти числа быть длинами сторон треугольника? Если «да», то вычислить его площадь, используя формулу Герона:
, где
.
Возможный текст программы:
using System;
namespace Prim_IF_2
{
class Program
{
public static void Main(string[] args)
{
double a, b, c, p, s;
Console.Write("a=");
a = double.Parse(Console.ReadLine());
Console.Write("b=");
b = double.Parse(Console.ReadLine());
Console.Write("c=");
c = double.Parse(Console.ReadLine());
if(a + b > c && b + c > a && a+ c > b)
{
Console.WriteLine("Треугольник существует");
p = (a + b + c) / 2;
s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
Console.WriteLine("s={0}", s);
}
else
Console.WriteLine("Треугольник не существует");
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Результаты работы (1-й вариант):
a=3
b=4
c=5
Треугольник существует
s=6
Press any key to continue . . .
Результаты работы (2-й вариант):
a=1
b=3
c=10
Треугольник не существует
Press any key to continue . . .
|
|
|
|