Java (Απορία περί if)

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
MpoMp
Venus Former Team Member
Posts: 6615
Joined: Mon Oct 04, 2010 9:31 pm
Gender:
Contact:

Java (Απορία περί if)

Post by MpoMp » Wed Oct 20, 2010 9:45 pm

Σήμερα στο εργαστήριο αναπτύξαμε πρόγραμμα το οποίο βρίσκει τον μέγιστο από τρεις αριθμούς. Η δομή του if, όπως δόθηκε από την καθηγήτρια, και δούλεψε ήταν η εξής (παραθέτω όλο τον κώδικα):

Code: Select all

class megisto3ar
{
    public static void main (String args[])
    {
        int a,b,c,meg; // a,b,c oi treis ari8moi, meg h metavlhth gia ton megisto
        a=Integer.parseInt(args[0]); b=Integer.parseInt(args[1]);
c=Integer.parseInt(args[2]);
        meg = a;
        if (b > meg) meg = b;
        if (c > meg) meg = c;
        System.out.println("O megistos ari8mos metaksy twn "+a+" kai "+b+" kai
"+c+" einai o "+meg+".");
    }
}
Όταν έριξα μια ματιά στο tutorial της oracle, παρατήρησα ότι η if διαφέρει στην σύνταξη:

Code: Select all

void applyBrakes(){
     if (isMoving) {
          currentSpeed--;
     } else {
          System.err.println("The bicycle has already stopped!");
     } 
}
Στο μέλλον (μου ως προγραμματιστής :-p ), μπορώ να χρησιμοποιώ και τις δύο συντάξεις?
Any fool can make something complicated. It takes a genius to make it simple.
MpoMp @ Discord
User avatar
cypher
Venus Former Team Member
Posts: 6207
Joined: Mon Sep 29, 2008 9:12 pm
Academic status: Alumnus/a
Gender:

Re: Java (Απορία περί if)

Post by cypher » Wed Oct 20, 2010 9:53 pm

Ως διαφορα εννοεις την υπαρξη και μη των αγκυλων; Αν ναι προφανως οτι σε βολευει χρησιμοποιεις, απλα καθε γλωσσα εχει μερικα δικα της προτυπα για το πως θα επρεπε να γραφεται ωστε να ειναι πιο ευκολη η αναγνωση του κωδικα απο αλλους.
ImageImageImageImageImageImageImage
User avatar
MpoMp
Venus Former Team Member
Posts: 6615
Joined: Mon Oct 04, 2010 9:31 pm
Gender:
Contact:

Re: Java (Απορία περί if)

Post by MpoMp » Wed Oct 20, 2010 9:54 pm

Βασικά τώρα που το βλέπω, ναι, οι αγκύλες διαφέρουν μόνο. Αλλά μήπως επειδή εμείς δεν χρησιμοποιήσαμε else?
Any fool can make something complicated. It takes a genius to make it simple.
MpoMp @ Discord
User avatar
cypher
Venus Former Team Member
Posts: 6207
Joined: Mon Sep 29, 2008 9:12 pm
Academic status: Alumnus/a
Gender:

Re: Java (Απορία περί if)

Post by cypher » Wed Oct 20, 2010 10:01 pm

MpoMp wrote:Βασικά τώρα που το βλέπω, ναι, οι αγκύλες διαφέρουν μόνο. Αλλά μήπως επειδή εμείς δεν χρησιμοποιήσαμε else?
Ο μεταγλωτιστης λαμβανει ως εντολες προς εκτελεση μετα το if ειτε την πρωτη εντολη (μεχρι το πρωτο ; ) ειτε το πρωτο block εντολων (οπου block ειναι οτι ειναι μεσα σε αγκυλες).
Απο εκει και περα κανεις οτι θες ειτε με if σκετο ειτε με if-else.
ImageImageImageImageImageImageImage
User avatar
MpoMp
Venus Former Team Member
Posts: 6615
Joined: Mon Oct 04, 2010 9:31 pm
Gender:
Contact:

Re: Java (Απορία περί if)

Post by MpoMp » Wed Oct 20, 2010 10:02 pm

Μάλιστα. Ευχαριστώ πολύ!
Any fool can make something complicated. It takes a genius to make it simple.
MpoMp @ Discord
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

Re: Java (Απορία περί if)

Post by The Punisher » Thu Oct 21, 2010 1:36 am

καλύτερα να βάζεις αγκύλες για να μη χάνεις τη μπάλα. Και να προτιμάς καθαρό κώδικα. Ο compiler δεν κουράζεται με 10 γραμμές παραπάνω :lol:
User avatar
ja_the_invincible
Wow! Terabyte level
Wow! Terabyte level
Posts: 2414
Joined: Tue Dec 01, 2009 12:33 am
Academic status: N>4
Gender:
Location: Κάπου στο matrix...

Re: Java (Απορία περί if)

Post by ja_the_invincible » Thu Oct 21, 2010 9:00 am

The Punisher wrote:καλύτερα να βάζεις αγκύλες για να μη χάνεις τη μπάλα. Και να προτιμάς καθαρό κώδικα. Ο compiler δεν κουράζεται με 10 γραμμές παραπάνω :lol:
εκ των πραγμάτων θα βάζει αγκύλες στα επόμενα :-p
f**k robin and batman i'm robbin with a bat man
User avatar
stoupeace
Wow! Terabyte level
Wow! Terabyte level
Posts: 5372
Joined: Tue Aug 26, 2008 4:08 pm
Academic status: High school
Gender:

Re: Java (Απορία περί if)

Post by stoupeace » Thu Oct 21, 2010 11:47 am

Αν το if σηκώνει μονο μία εντολή εγώ δε βάζω αγκύλες.

Code: Select all

if (Punisher.kills(people)) System.out.println("This is always true");
else
{
    people--;
    killer = Punisher;
    World.isSafe(true);
}
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
User avatar
MpoMp
Venus Former Team Member
Posts: 6615
Joined: Mon Oct 04, 2010 9:31 pm
Gender:
Contact:

Re: Java (Απορία περί if)

Post by MpoMp » Thu Oct 21, 2010 11:57 am

stoupeace wrote:

Code: Select all

if (Punisher.kills(people)) System.out.println("This is always true");
else
{
    people--;
    killer = Punisher;
    World.isSafe(true);
}
:lol: :lol: :lol: :lol: :lol: :lol: :lol:
Any fool can make something complicated. It takes a genius to make it simple.
MpoMp @ Discord
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

Re: Java (Απορία περί if)

Post by The Punisher » Thu Oct 21, 2010 12:58 pm

:lol:

απλά αν θέλει κάποιος να διαβάσει τον κώδικά σου μετά, θα έχει πρόβλημα. Γιατί το μάτι έχει συνηθίσει να διαβάζει το if και στην επόμενη γραμμή να βρίσκει εντολές, κι όχι ένα "else". Δηλαδή, άντε, το one-line-with-no-braces να το αντέξω, αλλά το same-line μου είναι δύσκολο
Post Reply

Return to “Προγραμματισμός”