మా మొట్టమొదటి ప్రోగ్రామ్లు ఒకదాని తర్వాత మరొకటి అమలు చేయబడిన సూచనల క్రమం. ఫోర్కులు లేవు. ఇందులో గ్రీటింగ్ని ప్రదర్శించే HelloWorld కూడా ఉంది. ఇందులో అంకగణిత గణనలు ఉంటాయి. మా మొదటి ప్రోగ్రామ్ల తర్వాత, మేము బ్రాంచ్ ఎలా చేయాలో నేర్చుకున్నాము, అంటే నిర్దిష్ట పరిస్థితులపై ఆధారపడి ప్రోగ్రామ్ వివిధ చర్యలను ఎలా చేయాలో నేర్చుకున్నాము. సెంట్రల్ హీటింగ్ మరియు ఎయిర్ కండిషనింగ్ సిస్టమ్ను నియంత్రించడానికి ఇక్కడ కోడ్ ఉంది:
కొనసాగుతుంది.
if (tempRoom>tempComfort)
airConditionerOn();
if (tempRoom<tempComfort)
heaterOn();
తదుపరి చర్య తీసుకోండి. రోజువారీ జీవితంలో, మేము తరచుగా ఏకరీతి పునరావృత చర్యలను చేస్తాము, ఉదాహరణకు, పై కోసం ఆపిల్లను తొక్కడం. ఈ మనోహరమైన ప్రక్రియను ఇలా వర్ణించవచ్చు:
-
గిన్నెలో ఆపిల్ల ఉంటే, మేము 1.1 నుండి 1.4 దశలను అమలు చేస్తాము:
- 1.1 ఒక ఆపిల్ పట్టుకోండి
- 1.2 దానిని పీల్ చేసి ముక్కలుగా కట్ చేసుకోండి
- 1.3 పాన్లో పై క్రస్ట్లో ఆపిల్ ముక్కలను అమర్చండి
- 1.4 దశ 1కి తిరిగి వెళ్ళు.
- మేము ఆపిల్ల సంఖ్యతో ముడిపడి ఉంటాము, కానీ అవి మనకు తగినంతగా లేకుంటే, కొన్ని కమాండ్లు "పేలోడ్" లేకుండా అమలు చేయబడతాయి (మరియు ఉనికిలో లేని ఆపిల్ను పీల్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు మనల్ని మనం కత్తిరించుకోవచ్చు).
- పీల్ చేయడానికి కమాండ్ల కంటే ఎక్కువ ఆపిల్లు ఉంటే, కొన్ని ఆపిల్లు తొక్కకుండా మిగిలిపోతాయి.
- అలాంటి కోడ్ చదవడం కష్టం. ఇది చాలా పునరావృతాలను కలిగి ఉంది మరియు సవరించడం కష్టం.
లూప్లు అనేది చర్యలను పదేపదే నిర్వహించడానికి అనుమతించే ప్రకటనలు
జావా లూప్ మన విషయంలో బాగా పని చేస్తుంది. ఈ నిర్మాణం సంక్షిప్త మరియు అర్థమయ్యే నిర్మాణంలో బహుళ చర్యలను ఉంచుతుంది. కాసేపు లూప్ ఉపయోగించి , పై కోసం యాపిల్-స్లైసింగ్ అల్గోరిథం జావాలో ఇలా ఉండవచ్చు:
while (numberOfApplesInBowl > 0) {
apple = bowl.grabNextApple();
arrangeInPie(apple.peel().slice());
numberOfApplesInBow--; // "--" is the decrement operator, which reduces the number of apples by one
}
System.out.println("The apples for the pie have been processed.");
కమాండ్ సింటాక్స్
అయితే ప్రకటన యొక్క మొదటి రూపాంతరం ఇలా ఉంటుంది:
while (Boolean expression) {
// Loop body — the statement(s) that are repeatedly executed
}
ఈ కోడ్ అమలు చేయబడినప్పుడు ఏమి జరుగుతుందనే దాని గురించి దశల వారీ వివరణ ఇక్కడ ఉంది:
- అయితే కీవర్డ్ తర్వాత కుండలీకరణాల్లో కనిపించే బూలియన్ వ్యక్తీకరణను మేము మూల్యాంకనం చేస్తాము .
- బూలియన్ వ్యక్తీకరణ నిజమైనదిగా మూల్యాంకనం చేస్తే, లూప్ బాడీలోని స్టేట్మెంట్లు అమలు చేయబడతాయి. లూప్ బాడీలోని చివరి ప్రకటన అమలు చేయబడిన తర్వాత, మేము 1వ దశకు వెళ్తాము
- బూలియన్ వ్యక్తీకరణ తప్పు అని మూల్యాంకనం చేస్తే, మేము while లూప్ తర్వాత మొదటి స్టేట్మెంట్కి వెళ్తాము.
ముందస్తు షరతుతో లూప్ చేయండి
మేము ఎల్లప్పుడూ లూప్ బాడీని అమలు చేయడానికి ముందు బూలియన్ వ్యక్తీకరణను (లూప్లోకి ప్రవేశించే షరతు) మూల్యాంకనం చేస్తాము కాబట్టి , అయితే లూప్ యొక్క ఈ రూపాన్ని తరచుగా ముందస్తు షరతులతో కూడిన లూప్ అంటారు . సంఖ్య యొక్క మొదటి పది శక్తుల పట్టికను రూపొందిద్దాం:
public static void main(String[] args) {
int base = 3; // The number that will be exponentiated
int result = 1; // The result of exponentiation
int exponent = 1; // The initial exponent
while (exponent <= 10) { // The condition for entering the loop
result = result * base;
System.out.println(base + " raised to the power of " + exponent + " = " + result);
exponent++;
}
}
కన్సోల్ అవుట్పుట్:
3 raised to the power of 1 = 3
3 raised to the power of 2 = 9
3 raised to the power of 3 = 27
3 raised to the power of 4 = 81
3 raised to the power of 5 = 243
3 raised to the power of 6 = 729
3 raised to the power of 7 = 2187
3 raised to the power of 8 = 6561
3 raised to the power of 9 = 19683
3 raised to the power of 10 = 59049
Process finished with exit code 0
పోస్ట్ కండిషన్తో లూప్ చేయండి
ఈ లూప్ యొక్క రెండవ రూపాంతరం ఇక్కడ ఉంది:
do {
// Loop body — the statement(s) that are repeatedly executed
} while (Boolean expression);
ఈ కోడ్ అమలు చేయబడినప్పుడు ఏమి జరుగుతుందో ఇక్కడ వివరించబడింది:
- లూప్ బాడీ అమలు చేయబడుతుంది ( దో కీవర్డ్ తర్వాత వెంటనే).
- అయితే కీవర్డ్ తర్వాత కుండలీకరణాల్లో కనిపించే బూలియన్ వ్యక్తీకరణను మేము మూల్యాంకనం చేస్తాము .
- బూలియన్ వ్యక్తీకరణ నిజమైనదిగా మూల్యాంకనం చేస్తే, మేము 1వ దశకు వెళ్తాము
- బూలియన్ వ్యక్తీకరణ తప్పు అని మూల్యాంకనం చేస్తే, మేము while లూప్ తర్వాత మొదటి స్టేట్మెంట్కి వెళ్తాము.
public static void main(String[] args) {
int base = 3; // The number that will be exponentiated
int result = base; // The result of exponentiation
int exponent = 1; // The initial exponent
do {
System.out.println(base + " raised to the power of " + exponent + " = " + result);
exponent++;
result = result * base;
} while (result < 10000); // The condition for exiting the loop
}
కన్సోల్ అవుట్పుట్:
3 raised to the power of 1 = 3
3 raised to the power of 2 = 9
3 raised to the power of 3 = 27
3 raised to the power of 4 = 81
3 raised to the power of 5 = 243
3 raised to the power of 6 = 729
3 raised to the power of 7 = 2187
3 raised to the power of 8 = 6561
Process finished with exit code 0
కోడ్లోని మార్పులపై శ్రద్ధ వహించండి. ముందస్తు షరతుతో దీన్ని లూప్తో పోల్చండి.
లూప్లతో పనిచేయడం గురించి ఆసక్తికరమైన విషయాలు
లూప్ బాడీలో బ్రాంచింగ్ స్టేట్మెంట్లు
లూప్లో అమలు చేయడాన్ని ప్రభావితం చేసే రెండు స్టేట్మెంట్లు ఉన్నాయి: బ్రేక్ (దీనిని మేము తదుపరి అధ్యాయంలో మరింత వివరంగా చర్చిస్తాము) మరియు- continue — ప్రస్తుత పునరావృతంలో మిగిలిన లూప్ బాడీ యొక్క ఎగ్జిక్యూషన్ను దాటవేస్తుంది మరియు while స్టేట్మెంట్ యొక్క బూలియన్ వ్యక్తీకరణ యొక్క మూల్యాంకనానికి జంప్ చేస్తుంది. వ్యక్తీకరణ నిజమని మూల్యాంకనం చేస్తే, లూప్ కొనసాగుతుంది.
- బ్రేక్ - ప్రస్తుత పునరావృతం యొక్క అమలును వెంటనే ముగించి, లూప్ తర్వాత మొదటి స్టేట్మెంట్కు నియంత్రణను బదిలీ చేస్తుంది. అందువలన, ఈ ప్రకటన ప్రస్తుత లూప్ యొక్క అమలును ముగించింది. మేము తదుపరి వ్యాసంలో మరింత వివరంగా పరిశీలిస్తాము.
while (numberOfApplesInBowl > 0) {
apple = bowl.grabNextApple();
numberOfApplesInBow--; // "--" is the decrement operator, which reduces the number of apples by one
if (apple.isBad()) { // This method returns true for rotten apples
apple.throwInGarbage();
continue; // Continue the loop. Jump to evaluation of numberOfApplesInBowl > 0
}
arrangeInPie(apple.peel().slice());
}
ఒక నిర్దిష్ట షరతు సంతృప్తి చెందినట్లయితే లూప్ బాడీలోని స్టేట్మెంట్లను అమలు చేయాల్సి వచ్చినప్పుడు కొనసాగింపు స్టేట్మెంట్ తరచుగా ఉపయోగించబడుతుంది
. ఉదాహరణకు, హార్డ్వేర్ సెన్సార్ ట్రిగ్గర్ చేయబడినప్పుడు మేము చర్యలను చేయాలనుకోవచ్చు (లేకపోతే, మనం సెన్సార్ రీడింగ్లను తీసుకునే లూప్ను కొనసాగించండి) లేదా మేము లూప్ యొక్క నిర్దిష్ట పునరావృత్తులపై మాత్రమే వ్యక్తీకరణను లెక్కించాలనుకోవచ్చు. సంఖ్యల సంఖ్య కంటే స్క్వేర్ తక్కువగా ఉన్న సహజ సంఖ్యల ఘనాల మొత్తాన్ని లెక్కించడానికి మనం కాసేపు లూప్ని ఉపయోగించడంలో రెండో సందర్భానికి ఉదాహరణ చూడవచ్చు. గందరగోళం? కింది కోడ్ని తనిఖీ చేయండి:
public static void main(String[] args) {
int sum = 0; // Total amount
int i = 0; // Initial number in the series
int count = 20; // Number of numbers
while (i <= count) {
i++; // Get the next number — "i++" is equivalent to "i = i + 1"
if (i * i <= count) // If the square of the number is less than
continue; // the number of numbers, then we won't calculate the sum
// Jump to the next number in the loop
sum += i * i * i; // Otherwise, we calculate the sum of the cubes of numbers
} // "sum += i * i * i" is notation that is equivalent to "sum = sum + i * i * i"
System.out.println(sum); // Print the result
}
అనంతమైన చుట్టు
ఈ శాఖల ప్రకటనలు చాలా తరచుగా అనంతమైన లూప్లలో ఉపయోగించబడతాయి. లూప్ నుండి నిష్క్రమించడానికి బూలియన్ షరతు ఎప్పుడూ సంతృప్తి చెందకపోతే మేము లూప్ను అనంతం అని పిలుస్తాము. కోడ్లో, ఇది ఇలా కనిపిస్తుంది:
while (true) {
// Loop body
}
ఈ సందర్భంలో,
బ్రేక్ స్టేట్మెంట్ లూప్ నుండి నిష్క్రమించడానికి మాకు సహాయపడుతుంది. లూప్ యొక్క శరీరం వెలుపల నిర్ణయించబడిన బాహ్య పరిస్థితుల కోసం వేచి ఉన్నప్పుడు ఈ రకమైన లూప్ అనుకూలంగా ఉంటుంది. ఉదాహరణకు, ఆపరేటింగ్ సిస్టమ్స్ లేదా గేమ్లలో (లూప్ నుండి నిష్క్రమించడం అంటే గేమ్ నుండి నిష్క్రమించడం). లేదా లూప్ యొక్క ప్రతి పునరుక్తితో, కొంత ఫలితాన్ని మెరుగుపరచడానికి ప్రయత్నించే అల్గారిథమ్లను ఉపయోగిస్తున్నప్పుడు, కానీ గడిచిన సమయం లేదా బాహ్య సంఘటన (ఉదా. చెకర్స్, చదరంగం లేదా వాతావరణ సూచన) ఆధారంగా పునరావృతాల సంఖ్యను పరిమితం చేయండి. సాధారణ పరిస్థితుల్లో అనంతమైన లూప్లు కావాల్సినవి కాదని గుర్తుంచుకోండి. ప్రదర్శించడానికి, ఘాతాంకానికి తిరిగి వెళ్దాం:
public static void main(String[] args) {
int base = 3; // The number that will be exponentiated
int result = 1; // The result of exponentiation
int exponent = 1; // The initial exponent
while (true) {
result = result * base;
System.out.println(base + " raised to the power of " + exponent + " = " + result);
exponent++;
if (exponent > 10)
break; // Exit the loop
}
}
కన్సోల్ అవుట్పుట్:
3 raised to the power of 1 = 3
3 raised to the power of 2 = 9
3 raised to the power of 3 = 27
3 raised to the power of 4 = 81
3 raised to the power of 5 = 243
3 raised to the power of 6 = 729
3 raised to the power of 7 = 2187
3 raised to the power of 8 = 6561
3 raised to the power of 9 = 19683
3 raised to the power of 10 = 59049
Process finished with exit code 0
నెస్టెడ్ లూప్లు
మరియు ఇప్పుడు మేము లూప్లపై మా చివరి అంశానికి వచ్చాము. ఆపిల్ పై (ప్రస్తుతం మీకు ఆకలిగా లేదని నేను ఆశిస్తున్నాను) మరియు మా ఆపిల్ పీలింగ్ లూప్ని గుర్తు చేసుకోండి:-
గిన్నెలో ఆపిల్ల ఉంటే, మేము 1.1 నుండి 1.4 దశలను అమలు చేస్తాము:
- 1.1 ఒక ఆపిల్ పట్టుకోండి
- 1.2 దానిని పీల్ చేసి ముక్కలుగా కట్ చేసుకోండి
- 1.3 పాన్లో పై క్రస్ట్లో ఆపిల్ ముక్కలను అమర్చండి
- 1.4 దశ 1కి తిరిగి వెళ్ళు.
- ముక్కల సంఖ్య = 0
-
స్లైస్ల సంఖ్య <12 ఉన్నంత వరకు, 2.1 నుండి 2.3 దశలను అమలు చేయండి
- 2.1 ఆపిల్ నుండి మరొక ముక్కను కత్తిరించండి
- 2.2 ముక్కల సంఖ్య++
- 2.3 దశ 2కి తిరిగి వెళ్ళు
-
గిన్నెలో ఆపిల్ల ఉంటే, మేము 1.1 నుండి 1.6 దశలను అమలు చేస్తాము:
- 1.1 ఒక ఆపిల్ పట్టుకోండి
- 1.2 పీల్ చేయండి
- 1.3 ముక్కల సంఖ్య = 0
- 1.4 స్లైస్ల సంఖ్య < 12 ఉన్నంత వరకు, 1.4.1 నుండి 1.4.3 దశలను చేయండి
- 1.4.1 ఆపిల్ నుండి మరొక ముక్కను కత్తిరించండి
- 1.4.2 ముక్కల సంఖ్య++ 1.4.3 దశ 1.4కి తిరిగి వెళ్ళు
- 1.5 పాన్లో పై క్రస్ట్లో ఆపిల్ ముక్కలను అమర్చండి
- 1.6 దశ 1కి తిరిగి వెళ్ళు.
public static void main(String[] args) {
// Print the second factors in a row
System.out.println(" 2 3 4 5 6 7 8 9");
int i = 2; // Assign the first factor to the variable
while (i < 10) { // First loop: execute as long as the first factor is less than 10
System.out.print(i + " | "); // Print the first factor at the beginning of the line
int j = 2; // The starting value of the second factor
while (j < 10) { // Second loop: execute as long as the second factor is less than 10
int product = i * j; // Calculate the product of the factors
if (product < 10) // If the product is a single digit, then we print two spaces after the product
System.out.print(product + " ");
else // Otherwise, print the product and one space after it
System.out.print(product + " ");
j++; // Increment the second factor by one
} // Go to the beginning of the second loop, i.e. "while (j < 10)"
System.out.println(); // Move to the next line on the console
i++; // Increment the first factor by one
} // Go to the beginning of the first loop, i.e. "while (i < 10)"
}
కన్సోల్ అవుట్పుట్:
2 3 4 5 6 7 8 9
2 | 4 6 8 10 12 14 16 18
3 | 6 9 12 15 18 21 24 27
4 | 8 12 16 20 24 28 32 36
5 | 10 15 20 25 30 35 40 45
6 | 12 18 24 30 36 42 48 54
7 | 14 21 28 35 42 49 56 63
8 | 16 24 32 40 48 56 64 72
9 | 18 27 36 45 54 63 72 81
Process finished with exit code 0
లూప్లు (ముఖ్యంగా,
అయితే స్టేట్మెంట్) సాఫ్ట్వేర్ యొక్క ప్రాథమిక బిల్డింగ్ బ్లాక్లలో ఒకటి. CodeGymలో టాస్క్లను పరిష్కరించడం ద్వారా, మీరు అన్ని రకాల లూప్లను నేర్చుకుంటారు, వాటి చిక్కులను అర్థం చేసుకుంటారు మరియు వాటిని ఉపయోగించడంలో ఆచరణాత్మక నైపుణ్యాలను పొందుతారు.
GO TO FULL VERSION