Προς το περιεχόμενο

Πώς διαβάζονται δύο for στη Java?


niknax

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους!Πώς διαβάζει ο υπλογιστής δύο for στη Java? Τι θα έλεγε δηλαδή με λόγια? Πώς πρέπει να σκεφτώ για να "μεταφράσω" π.χ:

for (x = 1; x<=10; x++)

{

for(j=x; j <= 10; j++)

 

System.out.print("*");

System.out.println();

}

Ευχαριστώ!

ΥΓ.Ψάχνω έναν τρόπο που να διευκολύνει την κατανόηση και τη σύνθεση τέτοιων for

Δημοσ.

Πρώτα για μια τιμή της κύριας μεταβλητής(χ) στο πρώτο for θα γίνουν όλες οι εντολές του δεύτερου for για κάθε πιθανή τιμή j.

Αυτό θα επαναληφθεί για όλες τις πιθανές τιμές της χ. Έτσι

για χ=1 θα γίνει για j=1,j=2,...,j=10 το μπλοκ εντολών της δεύτερης for

για χ=2 θα γίνει για j=2,j=3,...,j=10 --//-- --//--

.

.

.

για x=10 θα γίνει για j=10 το μπλοκ εντολών της δεύτερης for

 

Αν θέλεις αυτές

System.out.print("*");

System.out.println();

να εκτελούνται σαν σώμα της δεύτερης for μάλλον θα χρειαστούν δικές τους αγκύλες

Δημοσ.
Καλησπέρα σε όλους!Πώς διαβάζει ο υπλογιστής δύο for στη Java? Τι θα έλεγε δηλαδή με λόγια? Πώς πρέπει να σκεφτώ για να "μεταφράσω" π.χ:

for (x = 1; x<=10; x++)

{

for(j=x; j <= 10; j++)

 

System.out.print("*");

System.out.println();

}

Ευχαριστώ!

ΥΓ.Ψάχνω έναν τρόπο που να διευκολύνει την κατανόηση και τη σύνθεση τέτοιων for

 

το

System.out.print("*"); θα εκτελεστεί σαν σώμα του 2ου for

ενω το

System.out.println(); ΜΑΖΙ ΜΕ ΤΟ 2ο for αποτελούν το σωμα του 1ου for

 

έτσι

το 2ο φορ, στην ουσια τυπώνει εναν αριθμο απο διαδοχικα *, σωστά? Δηλ αν πεις

>
for(j=1; j <= 10; j++)
   System.out.print("*");

θα παρεις σαν αποτελεσμα

>**********

δηλ 10 αστερακια στη σειρα

 

τωρα

στο 1ο φορ, καλει επαναληπτικα το 2ο φορ (που τυπωνει σειρα απο *) και στο καπακι καλει και την System.out.println(); ωστε η επομενη σειρα απο * να παει κατω απο την άλλη

ετσι, αν είχες

>
[color=Red]for (x = 1; x<=10; x++)   // για 10 φορες....[/color]
{
   [color=Blue]for(j=1; j <= 10; j++)
       System.out.print("*");   // τυπωσε 10 αστερακια[/color]
   [color=Green]System.out.println();     // πηγαινε μια γραμμη κατω[/color]
}  

θα επερνες 10 γραμμες των 10 αστεριων

>
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********

Όμως, το 2ο φορ σου, έχει συνθήκη που μεταβάλεται απο το 1ο φορ

δηλ στο

>
for(j=[color=Red][b]x[/b][/color]; j <= 10; j++)

το χ αυξάνεται σε κάθε επαναληψη του 1ου φορ, σωστα?

αρα σε κάθε επαναληψη του 1ου φορ, τυπωνεται και μια γραμμη με μεταβλητο αριθμό απο αστερακια. Για την ακριβεια, σε καθε επαναληψη, τυπωνεται και ενα * λιγοτερο

 

αρα για το

>
for (x = 1; x<=10; x++)
{
   for(j=[color=Red]x[/color]; j <= 10; j++)
       System.out.print("*");
   System.out.println();
}

θα επερνες 10 γραμμες ....

>
**********
*********
********
*******
******
*****
****
***
**
*

 

 

 

hope that helps....

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...