andrip Δημοσ. 18 Φεβρουαρίου 2005 Δημοσ. 18 Φεβρουαρίου 2005 χωρίς να το τρέξω γιατί δεν προλαβαίνω (ταξιδεύω σε λίγο) αυτό που κάνει μπαμ είναι στη for βγάλε τα δύο ==, ένα χρειάζετε. Τα δύο μπαίνουν μόνο σε συνθήκες. Επίσης κάτι άλλο που βλέπω είναι οτι έχεις δύο int A, M και θες να τα χειριστείς με την charAt η οποία είναι για string. To A λοιπόν δήλωσε το String. Μετά με την toCharArray() δημιουργείς ένα πίνακα χαρακτήρων που σε κάθε θέση θα έχει κι απο ένα ψηφίο. Επειδή όμως και τα νούμερα του πίνακα είναι χαρακτήρες κάνε τη for που έχεις απο πάνω μετατρέποντας κάθε χαρακτήρα σε int με την Integer.parseInt
Cue Δημοσ. 18 Φεβρουαρίου 2005 Δημοσ. 18 Φεβρουαρίου 2005 koitakse h klironomikotita kai o polumorfismos, grafimata ktl ta exoun oles peripou oi gloses. den eine tipot. Προσωπική άποψη. Την ημέρα που κατανοήσεις στο έπακρο τι εστί κληρονομικότητα και πολυμορφισμός και πως ακριβώς μπορείς να τα χρησιμοποιήσεις για τις ανάγκες του προγράμματος σου τότε θα έχεις ανέβει και level. Είναι από τις έννοιες στον προγραμματισμό που πολλοί γνωρίζουνε αλλά ελάχιστοι τις έχουν κατανοήσει. guys ayto giati den douleyei: int A; A=123456; int M = 0; for (i=0;i==A.length();i++){ M=M+A.charAt(i);} System.out.println(M); System.out.println(A.charAt(i)); } den eprepe na ektiponh 1+2+3+4+5+6? mou ektiponei M=0 Πριν ξεκινήσω να σου πω το οτιδήποτε' date=' θα σε συμβούλευα να ρίξεις μια ματιά σε Coding Standards (Code Conventions) μιας και είναι άκρως σημαντικό να γνωρίζεις πριν καν ξεκινήσεις τον προγραμματισμό. Στο πρόβλημα σου τώρα, βάση της λογικής που έχεις ακολουθήσει για να έχεις το αποτέλεσμα που θες, το πρόγραμμα σου έχει αρκετά λάθη. Για αρχή, [1] int A; [2] A=123456; το οποίο συσχετίζεται άμεσα με το [5] M=M+A.charAt(i);} η μέθοδος είναι η java.lang.String#charAt(int) που σημαίνει ότι μπορείς να την καλέσεις μόνο από java.lang.String objects ενώ εσύ έχεις δηλώσει ότι το A είναι primitive type αριθμός int. [4] for (i=0;i==A.length();i++){ Αφενώς όπως πολύ σωστά αναφέρθηκε το "==" χρησιμοποιείται όταν θες να τεστάρεις ότι δύο αντικείμενα είναι "ίσα" (το έβαλα σε quotes γιατί δεν είναι έτσι απλό), αφετέρου δεν έχεις δηλώσει το είδος της μεταβλητής i Πέρα από αυτό όμως, απ'ότι κατάλαβα εσύ θες να επαναληφτεί το loop για κάθε ένα χαρακτήρα του A. άρα το for loop συντάσεται έτσι for (int i=0;i<A.length();i++) (initial value; condition; step) Συνεχίζουμε... [5] M=M+A.charAt(i);} και εδώ υπάρχει λάθος γιατί η μέθοδος java.lang.String#charAt(int) μας επιστρέφει char άρα πρέπει και το M να είναι του ίδιου τύπου (char και όχι int) για να μπορέσει να πάρει την τιμή αυτή. Ακόμα και έτσι όμως το operation της πρόσθεσης δε μπορεί να γίνει μεταξύ δύο char άρα πρέπει το M να δηλωθεί και αυτό σαν java.lang.String και να διαφοροποιήσεις τον κώδικα σου.... Δε πρόκειται να επεκταθώ Ακόμα όμως και αν αλλάξεις όλα τα παραπάνω, πάλι στην κονσόλα σου δε θα δεις το αποτέλεσμα που θες γιατί πολύ απλά το System.out.println βρίσκεται εκτός του for loop αν κοιτάξεις λίγο καλύτερα. [6] System.out.println(M); Άρα η τιμή που θα πάρεις θα είναι και η τελική του M. Όλα τα παραπάνω λαθάκια που έχεις κάνει δεν τα έκανες επειδή δεν έχεις την απαραίτητη εμπειρία με τον προγραμματισμό (και συγκεκριμένα την Java) αλλά γιατί δεν έχεις κάτσει να διαβάσεις λίγη θεωρία. Συμφωνώ μαζί σου ότι ένας προγραμματιστής για να γίνει κάτι παραπάνω από "καλός" πρέπει να ξοδέψει άπειρες ώρες προγραμματίζοντας (αν και πιστεύω πως για να γίνεις "καλός" προγραμματιστής πρέπει πρώτα να είσαι "καλός" αναλυτής και σχεδιαστής). Να ξέρεις όμως πως πάντα πριν από την πράξη έρχεται η θεωρία Προτείνω να ρίξεις μια ματιά στο παρακάτω βιβλίο που είναι και δωρεάν και μόλις έχεις ένα better understanding της Java, εδώ είματε εμείς να σε βοηθήσουμε Thinking in Java
Exoskeletor Δημοσ. 18 Φεβρουαρίου 2005 Μέλος Δημοσ. 18 Φεβρουαρίου 2005 koitakse h alhtheia eine pos oute ego thelo na kanei 1+2+3 ktl. thelo na kanei "1","12","123" alla mou ekane entyposh pou den douleye. kai to for loop to ksero pos eprepe na htan ekso alla epeidh sigoura den tha eprepe na emfanizh 0 den to alaksa. to i ean to diloso ekei pou mou les den to dexete. to dilosa apekso poio pano.me to M tora den ksero ti na kano gia na prosthetei xarakthres.(to "1" na to kanei "12" oxi 3). Den mporo na katalabo giati sto lenght ithele > kai oxi = h ==.. Na se rotiso kati allo. exoume 3 metablhtes. M= "AB" A=12 B=123 to M alazei sinexeia kai to string pou exei mesa periexei 2 gramata pou antistixoun se 2 alles metablhtes mou pou thelo na xrhsimopoiiso.diladi thelo ego sto proto grama tou string "A" kai eine h metablhth A na kano ayto: M.charAt(1)=M.charAt(0).charAt(M.charAt(0).length()) Diladi thelo na kano B=A.charAt(A.length()) (Diladi na balo sto B to teleyteo stoixeio tou A(kai na ginei B=1232)) giati kati mou leei pos den ginete?
Cue Δημοσ. 18 Φεβρουαρίου 2005 Δημοσ. 18 Φεβρουαρίου 2005 Όπως σου είπα καλό θα ήταν να διαβάσεις πρώτα κάποια βασικά. Πέρνα και μια βόλτα από το ελληνικό community για Java
Exoskeletor Δημοσ. 18 Φεβρουαρίου 2005 Μέλος Δημοσ. 18 Φεβρουαρίου 2005 e den xreiazete den nomizo na mou poun perisotera apo ekei. ena tutorial eixa brei apo ekei prin ligo kairo pou kata tyxh to exei grapsei o kathhghths mou.
kickeras Δημοσ. 18 Φεβρουαρίου 2005 Δημοσ. 18 Φεβρουαρίου 2005 de kserw an einai afto akrivws pou thes alla: String A="123456"; String M = ""; for (int i=0;i<A.length();i++) { M=M+A.charAt(i); // System.out.println(M); } System.out.println(M); afto sou vgazei opws nomizw pws thes 123456 kai an vgaleis ta comments tha sou vgalei 1, 12, 123, etc.... to teliko apotelesma einai ena string vevaia pou simenei oti an thes meta na kaneis mathimatikes prakseis me afto prepei na to kaneis parse se integer. To programma pou evales stin arxi apokleietai na sou evgaze M = 0 giati poli apla den ginotan compile. Prosexe pws dilwneis ta types giati mporei na mperdefteis efkola kai na kaneis initialization panta. Den mporo na katalabo giati sto lenght ithele > kai oxi = h ==.. to = kanei assign dld a = 3 pou simenei oti sto variable a kanoume assign to value 3. Na se rotiso kati allo. exoume 3 metablhtes. M= "AB" A=12 B=123 to M alazei sinexeia................giati kati mou leei pos den ginete? an to kaneis etsi akrivws katarxin de ginetai giati to '"AB" einai string kathws einai mesa se quotes enw to A' date=' B pou exeis apo katw einai integers(i mias k milame gia java otidipote allo ) De mporeis na kaneis A.charAt(int) giati to A den einai string. mporeis na kaneis p.x. char L = M.charAt(0); Programatisths gia mena den eine ayts pou kserei 20 entoles apekso. eine aytos pou kserei ton tropo pou leitourgei h glosa kai ton tropo sosths grafhs (kanones kanonikopoihshs ktl) kai exei ena biblio gia na briskei ti kanei kathe entolh opote xreiastei. siga mhn katso na matho apekso entoles Oxi gia mia glwssa alla gia kathe glwssa. I kathe glwssa exei tous dikous tis grammatical rules kai to diko tis syntax. De ginetai na to ksereis apeksw alla mporeis na ksereis to geniko tropo pou leitourgoun. Kaneis de mporei na kserei oles tis entoles apeksw....gia java exeis to Java API. Aftos einai o skopos tou. Alla kapoies vasikes entoles prepei na tis ksereis opws kai na ginei. cue.....akiri erwtisi alla mipws epaizes kapote tetrinet i empaines kana kali???
Cue Δημοσ. 19 Φεβρουαρίου 2005 Δημοσ. 19 Φεβρουαρίου 2005 cue.....akiri erwtisi alla mipws epaizes kapote tetrinet i empaines kana kali??? ναι και είχα και μια ομάδα που είχε χάσει στα ημιτελικά αδίκως but...i've put that behind now and Im into Java
kickeras Δημοσ. 19 Φεβρουαρίου 2005 Δημοσ. 19 Φεβρουαρίου 2005 ναι και είχα και μια ομάδα που είχε χάσει στα ημιτελικά αδίκως but...i've put that behind now and Im into Java ti les twra???????.....o kicker eimai re c!!!!! kai i dikia mou i omada eixe paei ligo xeirotera kai mena me fagan ta kswterika.... xronia kai zamania.....
Cue Δημοσ. 19 Φεβρουαρίου 2005 Δημοσ. 19 Φεβρουαρίου 2005 [way off topic to sum up] I remember you...with the blue coloured nick [/]
Exoskeletor Δημοσ. 23 Φεβρουαρίου 2005 Μέλος Δημοσ. 23 Φεβρουαρίου 2005 guys string se char pos ginete?
Dionisos Δημοσ. 23 Φεβρουαρίου 2005 Δημοσ. 23 Φεβρουαρίου 2005 Opws mporeis na deis kai sto API ths Java, h class String exei mia me8odo pou onomazetai toCharArray() kai epistrefei enan pinaka char. D.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.