0% found this document useful (0 votes)
15 views11 pages

Leksionet Java 6

Uploaded by

animane081
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views11 pages

Leksionet Java 6

Uploaded by

animane081
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Deklarimet e kontrollit të rrjedhjes.

Deklarimet brenda file-it burim përgjithësisht janë ekzekutuar nga maja drejt fundit, sipas
rradhës që ata shfaqen. Deklarimet e kontrollit të rrjedhjes, sidoqoftë, prishin rrjedhën e
ekzekutimit duke future në punë marrjen e vendimeve, laqet, kërcimet, duke mundësuar
programin tuaj që sipas një kushti të caktuar të ekzekutojë disa blloqe të veçanta të një kodi. Kjo
çështje përshkruan deklarimet që bëjnë marrjen e vendimeve (if-then, if-then-else, switch),
deklarimet e laqeve (for, while, do-while) dhe deklarimet e kërcimeve (break, continue, return)
që mund të suportohen nga gjuha e programimit Java.

Deklarimet if-then dhe if-then-else

Deklarimi if-then:
Deklarimi if-then është ai më i thjeshti i të gjitha deklarimeve të kontrollit të rrjedhës. Ai i tregon
programit tuaj të ekzekutojë një pjesë të caktuar të kodit vetëm në qoftë se bëhet një test i caktuar
dhe merret rezultati true. Për shembull, klasa Bicycle mund të lejojë frenimin për të
zvogëluar shpejtësinë e bicikletes vetëm në qoftë se bicikleta tashmë është në lëvizje. Një
implementim i mundshëm i kësaj metode mund të jepet si më poshtë:
void applyBrakes() {

// the "if" clause: bicycle must be moving

if (isMoving){

// the "then" clause: decrease current spëd

currentSpeed--;
}
}

Nëse kontrolli rezulton në vlerën false (që do të thotë se bicileta nuk është në lëvizje) kontrolli
kërcen në fund të deklarimit if-then.
Për më tepër, kllapat hapëse dhe mbyllëse nuk janë të detyrueshme, të mundësuara nga fakti që
pjesa then përmban vetëm një deklarim:

void applyBrakes() {

// same as above, but without braces

if (isMoving)

currentSpeed--;
}

Secili prej nesh mund të vendosë sipas dëshirës kur të heqë kllapat. Heqja e kllapave mund ta
bëjë kodin më të thjeshtë. Nëse një deklarim tjetër është shtuar në kushti then, zakonisht ndodh
që harrohet të vendosen kllapat e kërkuara së fundmi. Kompiluesi nuk mund të kapë gabime të
tilla dhe thjesht do të merrnim rezultate të gabuara.
Shembull: If1.java

public class If1 {


public static void main(String[] args) {
int a = 5;
System.out.println("original number is: " + a);
if ( a < 0 ) { a = -a; }
System.out.println("absolute value is: " + a);
a = -10;
System.out.println("original number is: " + a);
if ( a < 0 ) { a = -a; }
System.out.println("absolute value is: " + a);
}

Shembull: If2.java

public class If2 {


public static void main(String[] args) {
double d = Math.random();
System.out.print("The number " + d);
if (d < 1.0/3.0)
System.out.println(" is low");
if (d >= 1.0/3.0 && d < 2.0/3.0)
System.out.println(" is middle");
if (d >= 2.0/3.0)
System.out.println(" is high");
}
}
Deklarimi if-then-else.

Deklarimi if-then-else ofron një rrugë të dytë të ekzekutimit kur një kusht “if” vlerësohet si false.
Ju mund të përdorni një deklarim if-then-else në metodën applyBrakes për të nddermarrë disa
veprime nëse janë shtypur frenat kur bicikleta nuk është në lëvizje. Në këtë rast, veprimi që do të
kryhet është shfaqja e një mesazhi gabimi që deklaron se bicikleta tashmë ka ndaluar.
void applyBrakes() {
if (isMoving) {
currentSpeed--;
} else {
System.err.println("The bicycle has already stopped!");
}
}

Progami që vijon më poshtë shënon notën bazuar në vlerën e pikëve të testit: A për nivel pikesh
mbi 90%, B për nivel pikësh mbi 80% e kështu me rradhë.

class IfElseDemo {
public static void main(String[] args) {

int testscore = 76;


char grade;

if (testscore >= 90) {


grade = 'A';
} else if (testscore >= 80) {
grade = 'B';
} else if (testscore >= 70) {
grade = 'C';
} else if (testscore >= 60) {
grade = 'D';
} else {
grade = 'F';
}
System.out.println("Grade = " + grade);
}
}

Rezultati i programit është:


Grade = C

Mund të vihet re se vlera e pikëve të testscore mund të kënaqë më shumë se një shprehje në
deklarimin e përbërë: 76> 70 dhe 76>60. Gjithsesi, sapo një kusht është plotësuar, ekzekutohen
deklarimet e duhura (grade= ‘C’) dhe kushtet e mbetura nuk vlerësohen.
Shembull: Sintaksa if-else

import java.io.*;
class divisorDemo
{
public static void main(String[] args)
{
int a =11;
if(a%2==0)
{
System.out.println(a +" is divisible by 2");
}
else
{
System.out.println(a+" is not divisible by 2");
}
}
}

Output:
C:\MCA>java divisorDemo
11 is not divisible by 2

Shembull: IfElse1.java

public class IfElse1 {


public static void main(String[] args) {
double d = Math.random();
if (d < .25) System.out.println("You are a winner!");
else System.out.println("Sorry, try again!");
}
}

Shembull: IfElse2.java

public class IfElse2 {


public static void main(String[] args) {
double d = Math.random();
System.out.print("The number " + d);
if (d < 1.0/3.0)
System.out.println(" is low");
else if (d < 2.0/3.0)
System.out.println(" is middle");
else
System.out.println(" is high");
}
}
Nested ifs

Ne kete rast kemi if te nderfutura dhe bllokskema e meposhtme e paraqet kete:

Shembull: Gjetja e numrit me te madh nder tre numra a, b, c.

class greatest {
public static void main(String args[]) {
int a=10;
int b=20;
int c=3;
if(a>b) {
if(a>c) {
System.out.println("a is greater number");
}
else
{
System.out.println("c is greater number"); }
}
else
{
if(c>b) {
System.out.println("c is greater number");
}
else
{
System.out.println("b is greater number");
}
}
}
}
Output:

C:\MCA>java greatest
b is greater number

Deklarimi switch.

Ndryshe nga deklarimet if-then dhe if-then-else, deklarimi switch mund të ketë një numër të
madh rrugësh të mundshme ekzekutimi. Një switch punon me primitivë të dhenash të tipit byte,
short, char, dhe int. Ai gjithashtu punon me tipa të numërueshëm, me klasën String dhe
me disa klasa të vecanta të cilat përdorin primitive të tillë si: byte, short, character, dhe
integer.
Shembulli i mëposhtëm deklaron një int të quajtur month, vlera e të cilit jep njërin prej muajve.
Kodi shfaq një emër të muajit bazuar në vlerën e month, duke përdorur deklarimin switch.
public class SwitchDemo {
public static void main(String[] args) {

int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break; }
System.out.println(monthString); } }
Trupi i deklarimit switch njihet ndryshe edhe si blloku switch. Një deklarim në bllokun switch
mund të etiketohet më një ose më shumë etiketa case ose default. Deklarimi switch vlerëson
shprehjen e tij, më pas ekzekuton të gjitha deklarimet që vijojnë dhe që përputhen me etiketën
case.

I njëjti veprim si më sipër mund të bëhej edhe duke përdorur deklarimet if-then-else:

int month = 8;
if (month == 1) {
System.out.println("January");
} else if (month == 2) {
System.out.println("February");
}
... // dhe kështu me rradhë.

Vendimi se kur do të përdoren deklarimet if-then-else ose deklarimi switch varet nga
lexueshmëria dhe nga shprehja të cilën po e teston deklarimi. Një deklarim if-then-else mund të
testojë shprehje të bazuara në brezin e vlerave dhe kushteve, ndërsa një deklarim switch teston
shprehje bazuar në një numër të vetëm, një vlerë të numëruar ose një objekt String.

Një pikë tjetër interesante është deklarimi break. Cdo deklarim break përfundon deklarimin
switch bashkëngjitur me të. Rrjedha e kontrollit vazhdon me deklarimin e parë e ndjekur më pas
nga blloku switch. Deklarimet break janë të nevojshme sepse pa to, deklarimet në blloqet switch
dështojne: Të gjitha deklarimet pas case-it koordinues ekzekutohen në sekuencë, pavarësisht të
shprehjes të etiketave case pasardhëse, derisa është takuar një deklarim break. Programi i
mëposhtëm paraqet deklarimet në bllokun switch që ka dështuar. Programi shfaq muajin që i
korrespondon variablit month dhe muajt që vijojnë në një vit:

public class SwitchDemoFallThrough {

public static void main(String[] args) {


java.util.ArrayList<String> futureMonths =
new java.util.ArrayList<String>();

int month = 8;

switch (month) {
case 1: futureMonths.add("January");
case 2: futureMonths.add("February");
case 3: futureMonths.add("March");
case 4: futureMonths.add("April");
case 5: futureMonths.add("May");
case 6: futureMonths.add("June");
case 7: futureMonths.add("July");
case 8: futureMonths.add("August");
case 9: futureMonths.add("September");
case 10: futureMonths.add("October");
case 11: futureMonths.add("November");
case 12: futureMonths.add("December");
break;
default: break;
}

if (futureMonths.isEmpty()) {
System.out.println("Invalid month number");
} else {
for (String monthName : futureMonths) {
System.out.println(monthName);
}
}
}
}

Rezulati i ekzekutimit të këtij kodi është:


August
September
October
November
December

Teknikisht, break-u final nuk kërkohet sepse rrjedha del nga deklarimi switch. Përdorimi i një
break është i rekomandueshëm kështu që modifikimi i kodit është më i lehtë dhe me më pak
gabime. Pjesa default merret me të gjitha vlerat të cilat nuk janë trajtuar nga asnjë prej pjesëve
case.

Shembulli i kodit më poshtë tregon se si një deklarim mund të ketë etiketa case të shumëfishta.
Shembulli i kodit llogarit numrin e ditëve në një muaj të veçantë:

class SwitchDemo2 {
public static void main(String[] args) {

int month = 2;
int year = 2000;
int numDays = 0;

switch (month) {
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12:
numDays = 31;
break;
case 4: case 6:
case 9: case 11:
numDays = 30;
break;
case 2:
if (((year % 4 == 0) &&
!(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
System.out.println("Number of Days = "
+ numDays);
}
}

Rezultati i këtij kodi do të ishte:


Number of Days = 29

Përdorimi i Vargjeve te karaktereve (Strings) në deklarimet switch.

Në Java SE7 dhe versionet më të reja, ju mund të përdorni një objekt String në shprehjen e
deklarimit switch. Shembulli i kodit që vijon jep numrin e muajit bazuar në një vlerë string të një
variabli month:

public class StringSwitchDemo {

public static int getMonthNumber(String month) {

int monthNumber = 0;

if (month == null) {
return monthNumber;
}

switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}

return monthNumber;
}

public static void main(String[] args) {

String month = "August";

int returnedMonthNumber =
StringSwitchDemo.getMonthNumber(month);
if (returnedMonthNumber == 0) {
System.out.println("Invalid month");
} else {
System.out.println(returnedMonthNumber);
}
}
}

Rezultati i këtij kodi është 8.

Variabli string në shprehjen switch është krahasuar me shprehjet e vendosura në secilën prej
etiketave case ashtu sic ishte përdorur metoda String.equals. Në mënyrë që për shembullin
StringSwitchDemo të pranohet cdo muaj pavaresisht nga case, month është konvertuar në
një lowercase (sipas metodës toLowerCase), dhe të gjitha stringjet e lidhura me etiketat case
janë në lowercase.

Shënim: Ky shembull kontrollon nëse shprehja në deklarimin switch është null. Sigurohuni që
shprehja në cdo deklarim switch nuk është null për të parandaluar NullPointerException nga
hedhja.

You might also like