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

ερώτηση αρχάριου στη java


niknax

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

Δημοσ.

Καλησπέρα σε όλους.Είμαι αρχάριος στη java και έχω το βιβλίο Deitel-Deitel ,έκτη έδοση "Java προγραμματισμός".Έχει μια άσκηση που ρωτάει το προβάλλει το ακόλουθο τμήμα κώδικα:

public class Mystery2

{

public static void main (String args[])

{ int count = 1;

while (count <= 10)

{ System.out.println(count % 2 == 1? "****" :"++++++++");

++count;}

}

}

 

H ερώτηση είναι πως διαβάζει ο compiler τα ορίσματα της System.out.println()???

Δεν καταλαβαίνω ούτε τα ορίσματα,ούτε τη λογική που διαβάζεται το πρόγραμμα.

Δημοσ.

Πρέπει να τα πάρεις ένα ένα τα πράγματα...μην τα παρατάς τόσο εύκολα.:-)

 

Λοιπόν αρχικά βλέπεις ότι χρησιμοποιεί το %.

Αυτό είναι το υπόλοιπο της διαίρεσης.

Δηλαδή 3 % 2 = 1

 

Ρίξε μία ματιά εδώ

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op1.html

 

Στην συνέχεια κάνει το εξής:

 

count % 2 == 1 ? "****" :"++++++++"

 

Αυτό πρακτικά σημαίνει ότι αν το υπόλοιπο της διαίρεσης είναι ίσο με 1 τότε να επιστρέψει "****" αλλιώς να επιστρέψει "++++++++"

Είναι ένα if , else δηλαδή με λίγα λόγια.

 

Διάβασε λίγο τους operators από εδώ μπας και τα καταλάβεις καλύτερα.

 

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html

 

Καλό διάβασμα.

Δημοσ.

Απο Java δεν θυμάμαι πολλά πράγματα πλέον αλλά θα βοηθήσω να καταλάβεις κάπως καλύτερα το πρόγραμμα.

 

Πρέπει να καταλλάβεις τι κάνει αυτό εδω το κομμάτι κώδικα τα υπόλοιπα τα βρίσκεις εύκολα μόνος σου.

>
count % 2 == 1? "****" :"++++++++"

 

Το παραπάνω είναι γνωστό και σαν τριαδικός τελεστής υπο συνθήκη(conditional expression operator).

 

Αυτή είναι η συνθήκη που έχεις

>count % 2 == 1

 

εαν είναι αληθής τότε εκτυπώνεται αυτό στην οθόνη

>****

 

Σε διαφορετική περίπτωση εκτυπώνεται αυτό

>++++++++

 

Τα υπόλοιπα πιστεύω ότι τα γνωρίζεις, σε διαφορετική περίπτωση εδώ είμαστε:-D

 

 

 

Edit: Μπάάα μάλλον γέρασα πλέον :-). Ελπίζω να μην παρεξηγηθεί κανένας mod.

Δημοσ.

Eυχαριστώ πολύ όλους σας,αν και το βιβλίο δεν είχε κάνει αναφορά σε τέτοιου είδους σύνταξη..:-)

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

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

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