Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:32 Der er 29 kommentarer og
3 løsninger

ELSE uden IF

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Showdata extends HttpServlet
{
       
        public void doGet (HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
        {
        PrintWriter        out;
       
        String pageID    = request.getParameter ("pageID");
        String firstcell = "50";
        response.setContentType("text/html");
       
//        out = response.getWriter();
//        if (pageID == null)
//        {
//            pageID = "start";
//        }
       
        out.println("<html><head>");
        out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>");
        out.println("<style>");
        out.println("body { background:transparent;margin='5px,10px,0px,5px';}");
        out.println("</style>");
        out.println("</head>");
        out.println("<body>");
        out.println("<table border='0' cellpadding='0' cellspacing='0' style='width:100%;'>");
       
        Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=USER","org.gjt.mm.mysql.Driver");     
           
        try {
       
        if(pageID.equals("news")){
        ResultSet rsnews = d.select("SELECT datee,news FROM news ORDER BY id DESC");
           
            while (rsnews.next()) {
               
                String date = rsnews.getString("datee").replaceAll("\n","<BR>");
                String news = rsnews.getString("news").replaceAll("\n","<BR>");
                System.out.println(date+news);
                out.println("<tr><td class='celltext' style='width:30%;'>");
                out.println(date);
                out.println("</td><td class='celltext'>");           
                out.println(news);
                out.println("</td></tr>");
                out.println("<tr style='height:10px;'><td></td></tr>");
               
            }
       
        else if(pageID.equals("guestbook")){
       
        System.out.println("guestbook");
        }
       
       
        }
        else
        {
        ResultSet rs = d.select("select content,content1 from pages where name='"+pageID+"'");
           
            if (rs.next()) {
           
            String content = rs.getString("content").replaceAll("\n","<BR>");
            String content1 = rs.getString("content1").replaceAll("\n","<BR>");   
               
                out.println("<tr><td class='celltext' style='width:"+firstcell+"%;'>");
                out.println(content);
                out.println("</td><td class='celltext'>");           
                out.println(content1);
                out.println("</td></tr>");
               
                }       
           
            else
            {
            System.out.println("No records in resultset");
            }
        }
        out.println("</table></body>");
        out.println("</html>");
        out.close();
       
        } catch (SQLException s) {
                out.println("<h3>SQL fejl: " + s.toString() + " "
                + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
        }
    d.close();
   
    }
       
}
Avatar billede soreno Praktikant
19. januar 2003 - 15:34 #1
Jeg tror ikke helt jeg har forstået hvad spørgsmålet er ?
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:34 #2
Ideen er at hvis pageID er noget skal der ske noget, ellers hvis pageID er noget andet skal der ske noget andet, ellers noget tredie
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:34 #3
else if(pageID.equals("guestbook")){

skal være

} else if(pageID.equals("guestbook")){
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:35 #4
jeg troede det var

IF
ELSE IF
ELSE
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:38 #5
så får jeg at vide at jeg har en try uden catch
Avatar billede arne_v Ekspert
19. januar 2003 - 15:39 #6
Det skal det også !

if(...)
  // one line
else if(...)
  // one line
else
  // one line

eller:

if(...) {
  // multiple lines
} else if(...) {
  // multiple lines
} else {
  // multiple lines
}
Avatar billede jakoba Nybegynder
19. januar 2003 - 15:40 #7
hvis du laver ordentlige indrykningeger er det nemt at se:

        if(pageID.equals("news")){    // her starter if nummer 1
            ResultSet rsnews = d.select("SELECT datee,news FROM news ORDER BY id DESC");
         
            while (rsnews.next()) {  // her starter while
             
                String date = rsnews.getString("datee").replaceAll("\n","<BR>");
                String news = rsnews.getString("news").replaceAll("\n","<BR>");
                System.out.println(date+news);
                out.println("<tr><td class='celltext' style='width:30%;'>");
                out.println(date);
                out.println("</td><td class='celltext'>");         
                out.println(news);
                out.println("</td></tr>");
                out.println("<tr style='height:10px;'><td></td></tr>");
             
            }  // her skytter while
     
        else if(pageID.equals("guestbook")){  // her starter if nummer 2
     
            System.out.println("guestbook");
        }  // her slutter if nummer 2

du har aldrig afsluttet første del af if nummer 1.
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:40 #8
Yeps. Så skal du fjerne en af de andre }-ere.

Du skal lære at få dem til at hænge sammen, de
der {...}-ere :)
Avatar billede arne_v Ekspert
19. januar 2003 - 15:44 #9
Her er en Eclipse formateret version:

package test;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Showdata extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        PrintWriter out;

        String pageID = request.getParameter("pageID");
        String firstcell = "50";
        response.setContentType("text/html");

        //        out = response.getWriter();
        //        if (pageID == null)
        //        {
        //            pageID = "start";
        //        }

        out.println("<html><head>");
        out.println(
            "<link rel='stylesheet' type='text/css' href='../style/styles.css'>");
        out.println("<style>");
        out.println(
            "body { background:transparent;margin='5px,10px,0px,5px';}");
        out.println("</style>");
        out.println("</head>");
        out.println("<body>");
        out.println(
            "<table border='0' cellpadding='0' cellspacing='0' style='width:100%;'>");

        Databaseforbindelsemysql d =
            new Databaseforbindelsemysql(
                "jdbc:mysql://URL/DB?user=USER&password=USER",
                "org.gjt.mm.mysql.Driver");

        try {

            if (pageID.equals("news")) {
                ResultSet rsnews =
                    d.select("SELECT datee,news FROM news ORDER BY id DESC");

                while (rsnews.next()) {

                    String date =
                        rsnews.getString("datee").replaceAll("\n", "<BR>");
                    String news =
                        rsnews.getString("news").replaceAll("\n", "<BR>");
                    System.out.println(date + news);
                    out.println("<tr><td class='celltext' style='width:30%;'>");
                    out.println(date);
                    out.println("</td><td class='celltext'>");
                    out.println(news);
                    out.println("</td></tr>");
                    out.println("<tr style='height:10px;'><td></td></tr>");

                }

            } else if (pageID.equals("guestbook")) {

                System.out.println("guestbook");
            } else {
                ResultSet rs =
                    d.select(
                        "select content,content1 from pages where name='"
                            + pageID
                            + "'");

                if (rs.next()) {

                    String content =
                        rs.getString("content").replaceAll("\n", "<BR>");
                    String content1 =
                        rs.getString("content1").replaceAll("\n", "<BR>");

                    out.println(
                        "<tr><td class='celltext' style='width:"
                            + firstcell
                            + "%;'>");
                    out.println(content);
                    out.println("</td><td class='celltext'>");
                    out.println(content1);
                    out.println("</td></tr>");

                } else {
                    System.out.println("No records in resultset");
                }
            }
            out.println("</table></body>");
            out.println("</html>");
            out.close();

        } catch (SQLException s) {
            out.println(
                "<h3>SQL fejl: "
                    + s.toString()
                    + " "
                    + s.getErrorCode()
                    + " "
                    + s.getSQLState()
                    + "</h3>");
        }
        d.close();

    }

}
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:45 #10
Så lykkes det :-))))))
Avatar billede disky Nybegynder
19. januar 2003 - 15:45 #11
Et godt tip der gør det MEGET lettere at se om du har korrekte sæt af {}'ere.

Er at bruge følgende kodestil istedet.

if (x==y)
{
  //lav noget
}
else
{
  //lav noget andet
}

istedet for

if (x==y){
  //lav noget
}
else {
  //lav noget andet
}


På den først viste måde kan du meget nemt se om de hænger sammen eller ej.
Avatar billede jelzin101 Praktikant
19. januar 2003 - 15:47 #12
eller brug emacs :)
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:53 #13
Det er så vildt at Eksperten findes, og at der findes folk som jer. Total respekt. Jeg ville ikke have en chance hvis jeg ikke have det her totalt fede sted at spørge ( Hvilket jeg jo så også gør :-) )
Avatar billede disky Nybegynder
19. januar 2003 - 15:53 #14
Haha den var god :-) (Emacs er ikke et brugbart værktøj, for besværligt at bruge, IMHO)

Selvfølgelig kan et ordentligt udviklingsværktøj hjælpe ved at highlighte den matchende klamme, men at strukturere koden ordentligt gavner nu mere.
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 15:57 #15
Jeg bruger JCreator
Avatar billede disky Nybegynder
19. januar 2003 - 15:59 #16
Den kender jeg ikke lige, men viser den hvad en klamme, parantes og lignende hører sammen med ?

Hvis ikke, kunne det være en fordel at skifte værktøj.
Avatar billede jakoba Nybegynder
19. januar 2003 - 16:06 #17
disky >> du lægger lidt op til religionskrig her. Jeg foretrækker så langt
if (x==y){
  //lav noget
}
else {
  //lav noget andet
}

den simple regel er:
  "gå opad fra } til der står et bogstav i samme kolonne. så SKAL det tilhørende { stå yderst tilhøjre i den linie"

men det er en smagssag. Hovedsagen er at man vælger sig EEN regel. og så overholder den.
Avatar billede disky Nybegynder
19. januar 2003 - 16:11 #18
Ja det er religion, men personligt synes jeg det er meget meget nemmere når {}'ere står over hinaden og ikke alle mulige andre tegn, {}'eren hører sammen og skal derfor også gerne stå over hinanden.

I dit tilfælde sikre man nemlig ikke at der faktisk er en { uden man både skal kigge op, og derefter finde enden af program linien som sagtens kan stå 3 linier længere nede i sourcen.
Avatar billede jelzin101 Praktikant
19. januar 2003 - 16:14 #19
"Emacs er ikke et brugbart værktøj, for besværligt at bruge"

- tror nu mest det er en smagssag, i starten kan det godt være lidt svært - men min erfaring er at man ret hurtigt kommer til lære det, og hvis man først har lært nogle tastaturgenveje (der dog ikke altid er lige indlysende :) så går det meget hurtigere end tilsvarende jeg har prøvet.

én af de ting jeg bedst kan li' ved det er at der er (hvis man tilføjer det) syntaks highlighting til stort set alle sprog - herunder også kodestrukturering. (og så hvis man er virkeligt nørdet og man mangler en funktionalitet, kan man skrive den selv i lisp *gg* :)

-jeg synes også hele buffer tingen er ret sej - f.eks. kan du smide en ml compiler i det ene buffer og så sidde og teste direkte.

og så tilsidst at den kører fint på på win og *nix er en rigtig god ting :)

/J.
Avatar billede disky Nybegynder
19. januar 2003 - 16:16 #20
Jeg blev tvunget til at bruge emacs på et job jeg engang havde, jeg har aldrig fået lavet så lidt kode på så lang tid, ene og alene pga. Emacs, efter jeg endelig fik lov til at bruge Forte i stedet, sprøjtede koden ud igen :)

Men selvfølgelig er det bare noget man skal vende sig til, ingen tvivl om det. Jeg kender folk der nægter at arbejde med andet end VI :)
Avatar billede carstenknudsen Nybegynder
19. januar 2003 - 16:22 #21
Ang. kodeskrivning så skrives en if som:
if (condition) {
    statements;
}
ifølge Java Code Conventions afsnit 7.4, den kan
downloades fra http://java.sun.com/docs/codeconv
hvis man er interesseret. Men, man er naturligvis
ikke tvunget til at følge den.
Ang. emacs så bruger jeg ikke andet (en gang imellem
bruger jeg dog vi hvis det skal gå hurtigt); James
Gosling er iøvrigt en af personerne bag emacs:)
Avatar billede Slettet bruger
19. januar 2003 - 16:27 #22
Emacs er i hvert fald den foretrukne kodeeditor på datalogisk institutet ved aarhus universitet. Når man først har sat sig ind i den, er den umulig at undvære. Men det er et ekspert værktøj, og ikke for begyndere (jo mindre man er villig til at bruge tid på at lære det). Indlæringstiden er dog det hele værd. Jeg er overbevist om at emacs er langt den bedste editor til professionelt brug.
Avatar billede disky Nybegynder
19. januar 2003 - 16:27 #23
Jeg viste den ville komme.

Det sjove er at flere SUN ansatte jeg snakkede med på Java One i 2001, sagde at de ikke engang selv fulgte den kode standard, når de udviklede kode.

Men for LANG tid siden var det bare blevet valgt af en der kunne lide den stil, at sådanne skulle SUN's javakode være. Så inden det bliver offentligt reformatter man bare koden.

Pretty simple :)

En kodestandard er tit noget et firma bare har valgt, nogle gang endda af en der ikke engang selv er udvikler. Og så bliver al kode der er offentligt publiseret i den stil, det ændrer dog ikke på hvad udviklerne reelt selv gør.

Ordentlige værktøjer kan ved et taste tryk reformatterer hele koden.
f.eks. IntelliJ

James Gosling har udtalt angående Emacs, at det er utroligt, at efter så mange år at den stadigvæk ikke er blevet mere brugervenlig og lignende, bortset fra det var han kun med i starten.
Avatar billede disky Nybegynder
19. januar 2003 - 16:29 #24
jjust:
Ja og ifølge en eller anden amerikansk undersøgelse som Arne altid henviser til, er JBuilder det mest brugte java IDE på markedet, men det gør det bestemt ikke bedre end det er.

Man skal selvfølgelig bruge det værktøj man bedst kan lide, og jbuilder,emacs er bestemt ikke blandt dem jeg ville vælge, de sløver nemlig udviklingen. IMHO
Avatar billede jakoba Nybegynder
19. januar 2003 - 16:32 #25
Jeg arbejdede engang med 'Codewright', men det kan da godt være den er emacs-baseret. den er ihvertfald lækker og kan alt det i beskriver, bortset fra at den kan det samtidigt for allemulige sprog. COBOL, Python, HTML, ... you name it.
Avatar billede jakoba Nybegynder
19. januar 2003 - 16:37 #26
disky >> hvis du studerer det danske sprog er jeg ret sikker på du vil være enig i at det er ulogisk, inkonsistent og upræcist.
Det er 'bare blevet valgt'.
Men sålænge vi er enige om at tale dansk er det et godt nok sprog til formålet :-))
Avatar billede mikmakmuk Nybegynder
19. januar 2003 - 16:40 #27
Jeg er glad for JCreator af den simple årsag at det er ren kode uden alt mulig drag and drop :-)
Avatar billede disky Nybegynder
19. januar 2003 - 16:49 #28
jakoba:
Det har du så sandelig ret i :)
Avatar billede carstenknudsen Nybegynder
19. januar 2003 - 16:51 #29
Citat af James Gosling: "And IDEs are generally targeted at low-end
developers -- people who are not experts at writing code".
Avatar billede disky Nybegynder
19. januar 2003 - 16:54 #30
carsten:
Så med den påstand ønsker du at sige at folk der ikke bruger mærkelig kryptiske værktøjer, ikke kan programmere ?

Jeg bruger IDE'er ganske enkelt fordi deres muligheder overskygger alle de mærkelige og kryptiske editorer der findes på markedet.

F.eks. IntelliJ's suveræne refactoring tool, code reformatter osv.
Avatar billede Slettet bruger
19. januar 2003 - 17:05 #31
disky:

Jeg er helt enig med dig i at man skal vælge den editor man bedst kan lide, men jeg mener stadig at emacs kun sløver udviklingen hvis man ikke kan finde ud af at bruge den. Som nævnt, tager det tid at sætte sig ind i den, men når man først har fået styr på det, går det hurtigt, meget hurtigt endda. At sammenligne emacs med JBuilder, er som at sammenligne unix/linux med windows.

Selvfølgelig er den editor man bør vælge også afhængig af hvad der skal udvikles og hvilket/hvilke sprog. Jeg bruger ikke kun emacs til java, men også til c, c++, perl, beta, xml osv. Emacs kan det hele, og det er en fordel ikke at skulle skifte værktøj, når man bruger mange forskellige teknologier.

Forøvrigt kan dette spørgsmål nemt udvikle sig til en religionskrig, da folk af en eller anden årsag har temmelig stærke meninger om hvad der er godt og ikke godt. Så skal vi ikke lade det ligge :)
Avatar billede Slettet bruger
19. januar 2003 - 17:06 #32
Om programmering og fastsættelse af 'coding standard' i et team,
citat fra "Extreme programming installed" - af Ron Jeffries et al.

"We all code to an agreed coding standard. This ensures that the code
communicates as clearly as possbile and supports our shared responsibility
for quality everywhere. It dosen't matter so much what the standard is.
What's more important is that everyone at the team uses it. Yes,
we know it sounds regimented at first, but it will pay off. Suppose someone
went onto your computer some night and reformatted all you code. Not only
would you change your password, but you'd be slowed down. You might even go to
the trouble to format it all back because you need to be able to just glance
at the code and see what it's up to.
Now it turns out that it isn't the specifics of your favorite formatting that matter;
it's your familiarity with them. So push a bit for your favorite style but be
prepared to bend and go with the team's choices. In a very short time, if you
use the new style, you'll get just as good as it as you are with your favorite.
You may even come to like the other style better. No, really, it happend to us."
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester