Приклади:
if (x == 0) y =1; else y = x;
if (x != 0) y = x;
if (a >= b) { c = a - b; r = 0;}
else { c = b - a; r = 1;}
if ((1-x) < 0) y = 0;
Якщо в умовах використовуються змінні логічного типу які мають
значення true або false,то запис оператора має вид:
if (Flag ) < виконуваний оператор >; // Flag==true
if(! Flag ) < виконуваний оператор >; // Flag==false
Тут Flag змінна логічного типу.
Результат перевірки умови має логічний тип,топто в умовах
можна використовувати логічні операції:
&& - логічне "І"
|| - логічне "АБО"
! - логічне "НЕМАЄ"
^ - логічне " АБО щовиключає "
Приклади:
/* Перевірка приналежності x відрізку [ Xn;Xk ] */
if (x >= Xn && x <= Xk) { .........}
if (a==0 || b==0) { .........} /* Якщо a або b дорівнює 0 */
if (a!=0 && b==0) { .........}
/* Якщо одночасно a недорівнює 0 і b дорівнює 0 */
При використанні в умовах змінних дійсних типів точні рівності
можуть не викониваться.У цих випадках доцільно використовувати
нерівності типу:
if (Math,Abs(y-1) <= 1E-8 ) {...}
/*Умова виконується,якщо y відрізняється від 1 по модулі
на 0.00000001 */
Оператор вибору варинтів switch - здійснює обчислення в залежності
від значення селектора.
У якості селектора може бути використана будь-яка змінна типу ,що
перераховується(цілі,символьни).
Приклади:
/* селектор sel - змінна цілого або рядкового типу */
switch (sel) {
case 0 : <оператор 1>;break;
case 1 : <оператор 2>;break;
case 2..5 : <оператор 3>;break;
case 6 : { <оператори > ; } break;
}
/* селектор key - змінна типу char */
switch (key) {
case '0' : <оператор 1>;break;
case 13 : <оператор 2>;break;
case 'd' : <оператор 3>;break;
case 'n' : { < оператори 4 > ;}break;
default < оператор 5 >;
}
Оператор циклів із заданим числом повторень.
for ( < початкове значення циклічної змінної >;
< умови закінчення циклу>;
<зміни циклічної змінної > )
{ < оператори циклу >; }
Тут циклічної змінної може бути будь-яка змінна типу,що
перераховується . Значення циклічної змінної послідовно
змінюється поки не буде досягнуте кінцеве значення.
Приклади:
/* Обчислення значень sin(x) для кутів від 0 до 1 рад
із дискретністю (кроком) 0.1 рад,
i - цілого типу, y - дійсного типу */
for( i = 0 ; i <= 10; i++) y = i / 10;
/* {Обнулення масиву mas1 і заповнення одиницями масиву mas2 }
for ( i = 10; i >=0; i--) { mas1[i] = 0; mas2[i] = 1; }
Початкові і кінцеві значення циклічної змінної можуть бути
попередньо оголошени у виді констант або привласнені
яким-небудь змінним.
Приклади:
int Min = 4, Max = 120 ,i;
char cn = 'k', ck = 200, c;
..............................................
for (i=Min;i< Max;i++) ................
for (c=cn; c< ck; c++) ...................
Циклічний оператор із перевіркою умови закінчення
на початку циклу:
while ( < Умова закінчення циклу > )
{ < Оператори циклу >; }
Умовою закінчення циклу може бути будь-яке просте або
складове логічне вираження.
Приклади:
/* Обчислення функції sin(x) на інтервалі 0..Pi із кроком Pi/10.
Значення x і y запам'ятовуються в масивах mx, my */
double x = 0, Pi=Math.PI;
double[] mx = new double[100], my = new double [100];
int k = 0;
while ( x <= Pi )
{ y = Math.Sin(x); mx[k] = x; my[k] = y; x = x + Pi/10; k++ ; }
// Обчислення значень y
float x = 10, y = 1;
while (x >= -10 && y >= 0)
{
y = 2*x*x - x - 20;
x -= 0.1;
}
Циклічний оператор із перевіркою умови закінчення
наприкінці циклу:
do
{ Оператори циклу }
while ( < Умова закінчення циклу >);
Приклади:
/* Обчислення функції sin(x) на інтервалі 0..Pi
із кроком Pi/10.Значення x і y запам'ятовуються
в масивах mx, my */
double x = 0, y = 0;
double[] mx = new double[100], my = new double [100];
int k=0;
do
{ y = Math.Sin(x); mx[k] = x; my[k] = y; x += Pi/10; k++; }
while ( x<=Pi ) ;
Оператор циклу foreach
Цикл foreach призначений для обробки масивів, колекцій і інших контейнерів,
розрахованих на зберігання безлічі даних. Оператора має такий синтаксис:
foreach (<Елемент> in <Контейнер>) <Тіло_циклу>;
Приклад:
Обчислення суми елементів масиву
int [] arr = new int [100]; // Масив на 100 цілих чисел
Random rnd = new Random(); // Випадкове ціле число
for (int i = 0; i < 100; i++) // Наповнюємо масив
arr[i] = rnd.Next(5,20);
long Sum = 0;
int Min = arr[0], Max = arr[0]; // Максимальний і мінімальний
foreach (int v in arr) // Цикл перебору елементів масиву
{
Sum += v;
}
Оператори переходу
Оператори переходу призначені для переривання послідовного виконання програми.
До них відносяться оператори break, continue і return.
Оператор break завершує виконання поточного блоку операторів. Він використовується
в циклічних операторах для примусового завершення циклу і в операторах вибору switch.
Оператор continue передає управління в кінець поточного блоку. Він використовується
для пропуску чергової ітерації в циклічних операторах.
Оператор return необхідний в тілі методу-функції для завершення роботи методу і привласнення
функції потрібного значення. Його синтаксис: return <Вираз>
Оператор безумовного переходу здійснює перехід до оператора,
позначеному заданою міткою:
goto < ідентифікатор (ім'я) мітки >;
У якості імені мітки може бути використаний будь-який ідентифікатор.
Приклади:
{
......................
if (x>0) goto L2;
if (x<0) goto Lb1;
if (x==0) goto Quit;
.............................
L2: < Оператори >
..............................
Lb1: < Оператори >
..................................
Quit: < Оператори >
...............................
}
