niknax Δημοσ. 18 Μαρτίου 2008 Δημοσ. 18 Μαρτίου 2008 Καλησπέρα σε όλους!Πώς διαβάζει ο υπλογιστής δύο for στη Java? Τι θα έλεγε δηλαδή με λόγια? Πώς πρέπει να σκεφτώ για να "μεταφράσω" π.χ: for (x = 1; x<=10; x++) { for(j=x; j <= 10; j++) System.out.print("*"); System.out.println(); } Ευχαριστώ! ΥΓ.Ψάχνω έναν τρόπο που να διευκολύνει την κατανόηση και τη σύνθεση τέτοιων for
ata1983 Δημοσ. 19 Μαρτίου 2008 Δημοσ. 19 Μαρτίου 2008 Πρώτα για μια τιμή της κύριας μεταβλητής(χ) στο πρώτο 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 μάλλον θα χρειαστούν δικές τους αγκύλες
georgemarios Δημοσ. 19 Μαρτίου 2008 Δημοσ. 19 Μαρτίου 2008 Καλησπέρα σε όλους!Πώς διαβάζει ο υπλογιστής δύο 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....
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.