Sąlyginiai sakiniai Spausdinti
( 21 Votes )

Parašė Aurimas Šimkus   

Programavime dažnai prisireikia aprašyti kokias nors išlygas arba sąlygas kokiems nors veiksmams atlikti, kai yra keli variantai. C/C++ tam yra naudojamas sąlyginis sakinys if.

Tiek C, tiek C++ sąlyginiai sakiniai aprašomi vienodai:

if (sąlyga)
{vykdo, jei rezultatas teisingas}
else
{vykdo, jei rezultatas neteisingas}

 

Panagrinėsime du pavyzdžius: vieną parašytą C kalba, kitą - C++ kalba.

C pavyzdys:

Programa, kurioje vienas kintamasis yra kažkoks natūralusis skaičius ir jį reikia atspėti.

#include <stdio.h>
int main()
{
 int sk, spek;

 sk = 7;

 printf("Spek skaiciu: ");
 scanf("%d", &spek);

 if (sk == spek)
  printf("Atspejai!");
 else if (sk < spek)
  printf("Skaicius buvo mazesnis... %d\n", sk);
 else 
  printf("Skaicius buvo didesnis... %d\n", sk);
 return 0;
}

 

8 eilutėje, sąlygos sakinyje, matome, kad, kitaip, nei priskyrimo sakiniuose, naudojama dviguba lygybė. Sąlyginiuose sakiniuose taip pat naudojami operatoriai:

  1. > - daugiau,
  2. < - mažiau,
  3. >= - daugiau arba lygu,
  4. <= - mažiau arba lygu,
  5. != - nelygu,
  6. || - arba,
  7. && - ir.

Taigi, jei žaidėjas atspėja skaičių, vykdoma 9 eil. Jei neatspėja, tada kreipiamasi į kitą sąlyginį sakinį, kur spėtasis skaičius lyginamas su tikruoju. Jei tikrasis yra mažesnis už spėtąjį, tai vykdoma 11 eil., jei ne - 13 eil.

 

Programos vykdymo pavyzdys:

 

C++ pavyzdys:

Programa tikrinanti aritmetines žinias. Joje yra įvestas kažkokia lygtis, o žmogus, įvedęs jos kintamuosius, turi pasakyti, koks bus rezultatas.

#include <iostream>
using namespace std;
int main()
{
 int a, b, c;

 cout << "Iveskite du skaicius skaicius:" << endl; 
 cin >> a >> b;

 cout << "Kiek bus 5a-3b? ";
 cin >> c;

 if (5*a-3*b == c)
  cout << "Teisingai!" << endl;
 else 
  cout << "Klaida..." << endl;
 return 0;
}

Naujas dalykas šioje programoje yra kelių kintamųjų nuskaitymas viena funkcija - 7 eilutė. Prieš kiekvieną kintamąjį reikia prirašyti >> ir kiek norima priskirti kintamųjų, tiek tai ir kartoti.

Taigi žmogus įveda dviejų kintamųjų reikšmes ir jo paklausiama koks bus duotosios lygties rezultatas.Salyginis sakinys aprašomas 10 eil. Neužmiršti naudoti dvigubos lygybės ==! Jeigu rezultatas kairėje sąlygos pusėje sutampa su rezultatu dešinėje, tai vykdoma 11 eil., jei ne - 13 eil.

Programos vykdymas: