Gure programetan, askotan, baldintza desberdinen arabera, gauza ezberdinak egitea nahi izango dugu.
Komando guztiak sekuentzialki exekutatu beharrean, hori egin dezan, egitura berezi batzuk erabili beharko ditugu.
Kasuaren arabera IF, IF-ELSE, edo IF-ELSE IF hiru egiturak erabili ahal izango ditugu.
Nahi badugu baldintza bat betez gero (eta solik kasu horretan!) komando multzo bat exekutatzea, IF egitura erabiliko dugu honela:
if (BALDINTZA)
{
komando1;
komando2;
....
}
Horrela, BALDINTZA ez balitz beteko, programak ez luke exekutatuko kode zati hori eta aurrera jarraituko luke.
Konparaketazko operadoreen bidez jasotako emaitzak halakoak dira. Adibidez:
a>b //a handiagoa bada B baino
a>=b //a handiagoa bada B baino edo Bren berdina bada
a<b //....
a<=b //...
a==b // a eta b berdina badira
a!=b //a eta b ezberdinak badira.
!a //a gezurra bada (a aldagaia Boolean motakoa izanik)
a //a egia bada (a aldagaia Boolean izanik)
Gainera, baldintzak ez dira zertan hain sinpleak izan, konbinatu ahal dira && eta || hitz erreserbatuak erabiliz lotura modura:(Euskeraz "ETA" eta "EDO" hitzak erabiltzen ditugu lotailu gisa)
Uste duzue esaldi hori inprimatuko dela aldagaien balioak horiek izanik?
ADI!
a==b eta a=b adierazpenak OSO DESBERDINAK DIRA!
a==b konparatu egiten ditu bi balio eta true edo false balioa hartuko du.
a=b adierazpenean, a aldagaiari, b balioa ezartzen zaio.
Baina gehienetan, baldintza betetzen bada kode bat exekutatzea nahi dugun bezala, betetzen ez denean ere beste kode bat exekutazea nahi izango dugu. Orduan IF-ELSE egitura erabiliko dugu:
if (BALDINTZA)
{
komando1;
komando2;
....
}
else
{
komando3;
komando4;
....
}
else atalean ez da inolako baldintzarik adierazi behar, ulertzen da if ataleko baldintza betetzen EZ denean exekutatuko dela!
Bukatzeko, zenbait baldintzen arabera kode desberdina exekutatu nahiko bagenu, IF-ELSE IF - ELSE egitura erabiliko genuke.
if (BALDINTZA1)
{
komando1;
komando2;
....
}
else if (BALDINTZA2)
{
komando1;
komando2;
....
}
else if (BALDINTZA3)
{
komando1;
komando2;
....
}
....
else
{
komando3;
komando4;
....
}
Nahi ditugun beste else if kasu ipin ditzakegu eta azken elsea ez da derrigorrezkoa!
F13_Baldintzak izeneko ZilchScript-a sortu eta ondoko kodea idatzi (KOPIATU ETA ITSATSI DEZAKEZU!) , noski, Initialize funtzioaren barruan. Zerbait ez baduzu ulertzen, galdetu. Oso garrantzitsua da baldintzen arabera kode desberdina exekutatzen jakitea!
//Zenbaki aleatorien sortzailea behar dugu:
var randGenerator:Random = Random();
//Esleitu euskeraNota eta mateNota aldagaiei 0 eta 10 arteko zenbaki aleatorio bana
var euskeraNota:Real=randGenerator.Range (0,10);
var mateNota:Real=randGenerator.Range (0,10);
Console.WriteLine("-----------------------F13_BALDINTZAK----------------------");
//Kasu honetan, giltzak kendu ahal dira, komando bakarra idatzi dugulako barruan.
//Hala ere, ohitura ona da beti ipintzea.
// If-else egitura
if (euskeraNota>=5)
{
Console.WriteLine("Euskera gainditu duzu: `euskeraNota`");
}
else
{
Console.WriteLine("Ez duzu euskera gainditu: `euskeraNota`");
}
// IF - ELSE IF egituraren erabilera....
if (mateNota >=9)
{
Console.WriteLine("Mate: BIKAIN");
}
else if (mateNota>=7)
{
Console.WriteLine("Mate: OSO ONDO");
}
else if (mateNota>=6)
{
Console.WriteLine("Mate: ONDO");
}
else if (mateNota>=5)
{
Console.WriteLine("Mate: NAHIKO");
}
else
{
Console.WriteLine("Mate: GUTXI:`mateNota`");
}
//Baldintzak, konposatuak izan daitezke && (ETA) eta || (EDO) erabiliz
if ( ( mateNota>=5) && (euskeraNota>=5) )
{
Console.WriteLine("Zorionak! Biak gainditu dituzu!");
}
else if ( (mateNota<5) && (euskeraNota<5) )
{
Console.WriteLine("Uf! Biak suspenso!");
}
else
{
Console.WriteLine("Bueno, bat gaindituta eta bestea ez.");
}
Play-ari eman eta saiatu kodea ulertzen, ondoren antzeko zerbait zure kabuz egin beharko duzu eta!