Avatar billede madseksperten Nybegynder
10. november 2011 - 23:35 Der er 11 kommentarer og
1 løsning

if else

Jeg får da godt nok livet noget op i denne java tråd ;-)

Den næste opgave hedder:

Modify your printDetails method to include printing the reference
number. However, the method should only print the reference number if it has been set - that is, the refNumber string has a non-zero length. If it has not been set, then print the string, "ZZZ" instead. Hint: Use a conditional statement whose test calls the length method on the refNumber string.

__________________________________________________________

Koden ser sådan ud:

/**
* A class that maintains information on a book.
* This might form part of a larger application such
* as a library system, for instance.
*
* @author (Insert your name here.)
* @version (Insert today's date here.)
*/
class Book
{
    // The fields.
    private String author, title, refNumber;
    private int pages;

    /**
    * Set the author and title fields when this object
    * is constructed.
    */
    public Book(String bookAuthor, String bookTitle, String refNumber, int pages)
    {
        author = bookAuthor;
        title = bookTitle;
        this.pages = pages;
        refNumber = ("");

    }

    // Add the methods here ...
   
    public String getAuthor()
    {
        return author;
    }
   
    public String gettitle()
    {
        return title;
    }
   
    public void printAuthor()
    {
        System.out.println(author);
    }
   
    public void printTitle()
    {
        System.out.println(title);
    }
   
    public int getpages()
    {
        return pages;
    }
   
    public void printDetails()
    {
        System.out.println("Title:" + title);
        System.out.println("Author:" + author);
        System.out.println("pages:" + pages);     
    }
   
    public void setRefNumber(String ref)
    {
        refNumber = ref;
    }
   
    public String getRefNumber()
    {
        return refNumber;
    }
}
______________________________________________________

Jeg har prøvet at skrive dette:


public void printDetails()
    {
        System.out.println("Title:" + title);
        System.out.println("Author:" + author);
        System.out.println("pages:" + pages);
       
        if (refNumber.length() = 0)
        {
            System.out.println("Indtast min et tegn");
        }
        else
        {
            System.out.println("zzz");
        }
       
    }

Men får en fejl ved refNumber.length. Jeg er lidt i tvivl, fordi sådan som jeg har forstået det, skal det hentes fra constructoren, hvor der nu står:
refnumber = "()";
Men der får jeg en fejl?

Mvh
Avatar billede arne_v Ekspert
10. november 2011 - 23:42 #1
if (refNumber.length() == 0)
Avatar billede madseksperten Nybegynder
10. november 2011 - 23:53 #2
Jeg er ved at blive god hva Arne :-) hehe

Skal lige have opsummeret på hvad == er. Jer ret sikker på det er det samme som = i almindelig matematik, og det giver jo egentligt også mening.

Ligger du et svar:-)

Mvh Mads
Avatar billede madseksperten Nybegynder
10. november 2011 - 23:57 #3
hov satans det virker ikke alligevel. Den printer hele tiden bare zzz
Avatar billede arne_v Ekspert
11. november 2011 - 00:01 #4
== sammenligner venstre og hoejre

= tildeler venstre samme som hoejre
Avatar billede arne_v Ekspert
11. november 2011 - 00:02 #5
refNumber = ("");

skal nok vaere

this.refNumber = refNumber;
Avatar billede madseksperten Nybegynder
11. november 2011 - 00:04 #6
hhmm jeg tror måske du var lidt forkert på den Arne. Det lykkedes ihvertfald sådan her:

if (refNumber.length() > 0)
        {
            System.out.println(refNumber);
        }
        else
        {
            System.out.println("zzz");
        }
Avatar billede madseksperten Nybegynder
11. november 2011 - 00:06 #7
ligger du ikke et svar?

iøvrigt har jeg ikke helt fundet ud af hvornår man bruger

this.refNumber = refNumber; i constructoren, istedet for fx som jeg har gjort nu:

refnumber = ("");
Avatar billede arne_v Ekspert
11. november 2011 - 00:10 #8
Det test virker ogsaa, men de to test er jo forskellige ved at i det ene tilfaelde er det stoerre nd 0 og i det andet lig med nul der testes for.
Avatar billede arne_v Ekspert
11. november 2011 - 00:11 #9
this.refNumber = refNumber;

gemmer argumentet til constructoren i feltet af samme navn

refnumber = ("");

saetter ref nummer til tom streng
Avatar billede arne_v Ekspert
11. november 2011 - 00:11 #10
og et svar
Avatar billede madseksperten Nybegynder
11. november 2011 - 00:17 #11
Ja det er da egentligt også rigtigt :-)

Mange tak for hjælpen.
Avatar billede NegoZiatoR Nybegynder
11. november 2011 - 12:46 #12
== er til at sammenligne primitive typer, som int, boolean osv.

= er til at assign noget til noget andet af samme type.

Eks.

String a;

String b = "Hej";

a = b; // a er nu lig "Hej"

.length bruges til Arrays

.length(); bruges til andre typer nedarvet af interfacet Collection.

Vær opmærksom på at hvis du bruger metoden .length();

Så kan du løbe ind i NullPointerException.
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